Neos\Flow\Persistence\Doctrine\PersistenceManager::getIdentifierByObject PHP Метод

getIdentifierByObject() публичный Метод

Note: this returns an identifier even if the object has not been persisted in case of AOP-managed entities. Use isNewObject() if you need to distinguish those cases.
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;
    }

Usage Example

 /**
  * @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));
 }
All Usage Examples Of Neos\Flow\Persistence\Doctrine\PersistenceManager::getIdentifierByObject