我在构造函数中编写了下一个代码:
public function __construct()
{
die('creating entity');
}
当我使用new
运算符创建实体实例时:
$entity = new Entity();
我看到了creating entity
文字。
但是当我从回购中获得实体时:
$em->getRepository('AcmeDemoBundle:Entity')->find(1)
Doctrine在不调用__construct()
方法的情况下创建实体对象,但我看不到creating entity
文本。
有人可以解释Doctrine在从存储库加载对象时如何创建对象吗?
答案 0 :(得分:6)
创建实例而不调用ReflectionClass::newInstanceWithoutConstructor
可用的构造函数Doctrine创建映射实体的实例,而不调用Doctrine\ORM\Mapping\ClassMetadataInfo::newInstance()
中的构造函数