Экспериментируя с языком (не только для развлечения, но и для синтаксически элегантного способа реализации фабрики объектов ORM), я обнаружил, что иногда можно создавать новые объекты, используя заданный синтаксис:
$factory = new Factory();
$myBrandNewObject = new $factory->MagicallyExtractedField(true, 'sure');
class Factory {
public function __get($name) {
return ... ANY CLASS HERE ...
}
}
Это законно или нет? Я волнуюсь, что это может быть просто взлом, который может сломать вещи в будущем.
Задача ещё не решена.
Других решений пока нет …