Передо мной стала нехитрая задача, в чем она заключается? Заключается она в том, что у меня есть различное кол-во классов, и у каждого, в конструкторе, определенное кол-во переменных. Каждый класс вызывается с функции, вот так:
function getClass($class, $data = array()) {
// Lot of code
$c = new $class($data);
}
$class = getClass('A', array('a' => 'b', 'c' => 'd'));
// Class A now
class A {
public function __construct($data) {
extract($data);
}
}
// Class A need
class A {
public function __construct($a, $b) {
}
}
Собственно, выглядит средне и такому варианту можно найти применение, но есть ряд недостатков.
1. Писанина в параметре функции getClass в виде array(k => v, k1 => v1, kn => vn);
2. Нет совместимости классов, считай, они заточены под проект, ибо на приеме в конструкторе нужен массив.
Кто может что сказать? Как можно организовать вызов функции getClass вида:
$a = getClass('A', $var1, $var2);
Я уже голову изломал, даже хотел сделать в каждый класс вместо конструктора функцию, типа main(), и уже запускать ее через call_user_func_array.
Есть дума собрать в функцию и запустить через eval, но это нельзя, ибо не везде он доступен.
P.S. Сейчас придумал через create_function попробовать. Если, может, будут мысли все таки, отпишите.