public getIdentifierByObject ( object $object ) : mixed | ||
$object | object | |
리턴 | mixed | The identifier for the object if it is known, or NULL |
public function getIdentifierByObject($object)
{
if (property_exists($object, 'Persistence_Object_Identifier')) {
$identifierCandidate = ObjectAccess::getProperty($object, 'Persistence_Object_Identifier', true);
if ($identifierCandidate !== null) {
return $identifierCandidate;
}
}
if ($this->entityManager->contains($object)) {
try {
return current($this->entityManager->getUnitOfWork()->getEntityIdentifier($object));
} catch (\Doctrine\ORM\ORMException $exception) {
}
}
return null;
}
/** * @test */ public function getIdentifierByObjectUsesUnitOfWorkIdentityWithEmptyFlowPersistenceIdentifier() { $entity = (object) ['Persistence_Object_Identifier' => null]; $this->mockEntityManager->expects($this->any())->method('contains')->with($entity)->will($this->returnValue(true)); $this->mockUnitOfWork->expects($this->any())->method('getEntityIdentifier')->with($entity)->will($this->returnValue(['SomeIdentifier'])); $this->assertEquals('SomeIdentifier', $this->persistenceManager->getIdentifierByObject($entity)); }