1
У меня есть способ определить вложенные классы в Php, но он довольно сырой.Изящно вложенные классы в PHP - Есть предложения?
class foo {
function define_new_class($class, $code) {
if (!class_exists($class)) {
$definition = eval($code);
}
}
function bar() {
$new_class = "boo";
$this->define_new_class($new_class, "class $new_class {}");
$obj = new $new_class();
echo "Current class: " . get_class($this) . "\n"; // foo
echo "\$obj class: " . get_class($obj) . "\n"; // boo
}
}
$foo = new foo();
$foo->bar();
Возможно ли выполнить ту же работу изящно?
Вложенные классы ... Не имеет никакого смысла. Можете ли вы добавить пример, объясняющий, почему вы думаете, что вам нужно это сделать? – Marty
Создание динамических классов ... iffy. Если вы (а) знаете, что должен делать этот класс, и (б) знаете, как это сделать, вы лучше начинаете писать настраиваемый класс _actual_, который делает именно это при правильной настройке. Какую проблему вы пытаетесь решить с помощью этих динамических классов? Я бы поставил много на лучший способ. В противном случае сохранение отладки станет ужасным, ужасным кошмаром. – Wrikken
Мне пришлось определить один и только один класс для управления многими настраиваемыми объектами, тип которых не должен быть 'stdClass'. Применяя этот способ, я могу четко прочитать код в режиме отладки, и я действительно знаю, что это такое. – Galileo