Neos\Flow\Persistence\Generic\PersistenceManager::getObjectByIdentifier PHP Method

getObjectByIdentifier() public method

Returns the object with the (internal) identifier, if it is known to the backend. Otherwise NULL is returned.
public getObjectByIdentifier ( mixed $identifier, string $objectType = null, boolean $useLazyLoading = false ) : object
$identifier mixed
$objectType string
$useLazyLoading boolean This option is ignored in this persistence manager
return object The object for the identifier if it is known, or NULL
    public function getObjectByIdentifier($identifier, $objectType = null, $useLazyLoading = false)
    {
        if (isset($this->newObjects[$identifier])) {
            return $this->newObjects[$identifier];
        }
        if ($this->persistenceSession->hasIdentifier($identifier)) {
            return $this->persistenceSession->getObjectByIdentifier($identifier);
        } else {
            $objectData = $this->backend->getObjectDataByIdentifier($identifier, $objectType);
            if ($objectData !== false) {
                return $this->dataMapper->mapToObject($objectData);
            } else {
                return null;
            }
        }
    }

Usage Example

 /**
  * @test
  */
 public function clearStateForgetsAboutNewObjects()
 {
     $mockObject = $this->createMock(PersistenceMagicInterface::class);
     $mockObject->Persistence_Object_Identifier = 'abcdefg';
     $mockSession = $this->createMock(Generic\Session::class);
     $mockSession->expects($this->any())->method('hasIdentifier')->will($this->returnValue(false));
     $mockBackend = $this->createMock(Generic\Backend\BackendInterface::class);
     $mockBackend->expects($this->any())->method('getObjectDataByIdentifier')->will($this->returnValue(false));
     $persistenceManager = new Generic\PersistenceManager();
     $persistenceManager->injectPersistenceSession($mockSession);
     $persistenceManager->injectBackend($mockBackend);
     $persistenceManager->registerNewObject($mockObject);
     $persistenceManager->clearState();
     $object = $persistenceManager->getObjectByIdentifier('abcdefg');
     $this->assertNull($object);
 }