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