当从存储库中获取时,Doctrine如何在不调用__construct方法的情况下创建实体?

时间:2014-08-26 14:16:38

标签: php symfony doctrine-orm entity fetch

我在构造函数中编写了下一个代码:

public function __construct()
{
    die('creating entity');
}

当我使用new运算符创建实体实例时:

$entity = new Entity();

我看到了creating entity文字。

但是当我从回购中获得实体时:

$em->getRepository('AcmeDemoBundle:Entity')->find(1)

Doctrine在不调用__construct()方法的情况下创建实体对象,但我看不到creating entity文本。

有人可以解释Doctrine在从存储库加载对象时如何创建对象吗?

1 个答案:

答案 0 :(得分:6)

创建实例而不调用ReflectionClass::newInstanceWithoutConstructor

可用的构造函数

Doctrine创建映射实体的实例,而不调用Doctrine\ORM\Mapping\ClassMetadataInfo::newInstance()

中的构造函数