Ну, про эти функции я знаю, получить аргументы в фабричном методе я могу... Я не знаю как их все передать в конструктор.
Не писать же мне:
Код:
public static function &factory()
{
$class = 'MyClass';
switch (func_num_args())
{
case 0 : $object = new $class(); break;
case 1 : $object = new $class(func_get_arg(0)); break;
case 2 : $object = new $class(func_get_arg(0), func_get_arg(1)); break;
case 3 : $object = new $class(func_get_arg(0), func_get_arg(1), func_get_arg(2)); break;
………
}
return $object;
}
Тут похоже только eval() подойдёт, но это тоже не элегантно, т.к. всякие пхп-акселераторы eval-код не кэшируют.