1

在 Doctrine 2 中,UnitOfWork 对象有一个 getScheduledEntityUpdates 方法,该方法返回一个包含所有计划更新的实体的数组。这个数组的键似乎是巨大的十六进制数字,例如[000000000fa3298000000000d03645f6]. 这些键代表什么?

4

1 回答 1

0

这些键是存储在工作单元的身份映射中的对象的对象哈希。

您可以使用以下方法获取对象的对象哈希spl_object_hash

$object = new \stdClass();

var_dump(spl_object_hash($object));

出于性能原因,ORM 保留所有对象散列和实体标识符(散列)的列表。例如,$em->persist($object)多次调用不会导致任何操作,因为在身份映射$object查找非常快。

此外,如果您$em->find('My\Entity', 123)多次调用,则标识映射用于查找已在内存中的对象

于 2013-03-26T05:36:39.187 回答