Как Doctrine 2 извлекает сущности, не вызывая конструктор сущности? - PullRequest
12 голосов
/ 02 июля 2011

Кто-нибудь знает, как это работает?

1 Ответ

29 голосов
/ 02 июля 2011

Это работает при десериализации объектов.Десериализация в PHP не позволяет вызывать конструктор, поскольку сериализованный объект уже создан.

Создание объекта без вызова его конструктора в PHP:

$className = 'stdClass'; # set classname here
$serialized = sprintf('O:%d:"%s":0:{}', strlen($className), $className);
$object = unserialize($serialized);

Подробнее см.статья: Доктрина 2: Верните мне моего конструктора

...