Hallo,

Ik ben bezig met een soort van php framework, en daarvoor heb ik zojuist een methode geschreven om een klasse te laden. Het enige probleem is dat die klassen meerdere parameters kunnen hebben. Ik heb hier nu een methode voor geschreven die met meerdere parameters om kan gaan, maar nu is de vraag, kan dit simpeler?

<?php
function &load_class()
{
	if( func_num_args() >= 1 )
	{
		$class_name		= func_get_arg( 0 );
		$class_path		= CLASSPATH . '/' . strtolower( $class_name ) . '.class.php';
		$param_string	= '';
		
		if( func_num_args() > 1 )
		{
			for( $i = 1; $i < func_num_args(); $i++ )
			{
				$param_string .= ( ( $i != 1 ) ? ', ' : '' ) . '\'' . func_get_arg( $i ) . '\'';
			}
		}
		
		$call_string = 'return new ' . $class_name . '(' . $param_string . ');';
		
		return @eval( $call_string );
	}
	else
	{
		return false;
	}
}
?>
Een andere optie is:
<?php
function load_class()
{
$arguments = func_get_args();
$className = array_shift($arguments);
$classReflection = new ReflectionClass($className);
return $classReflection->newInstanceArgs($arguments);
}
?>
Hmmmm de Reflection klassen, nog nooit van gehoord eigenlijk. Die moet ik eens gaan bekijken, bedankt in ieder geval.

Reageren