How does Doctrine 2 retrieve entities without calling the entity's constructor?
Does anyone know how this 开发者_如何学编程works?
This works by unserializing objects. Unserializing in PHP does prevent the constructor to be called as the serialized object has been already constructed.
Create an object without calling it's constructor in PHP:
$className = 'stdClass'; # set classname here
$serialized = sprintf('O:%d:"%s":0:{}', strlen($className), $className);
$object = unserialize($serialized);
For more details please see this article: Doctrine 2: Give me my constructor back
精彩评论