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

clearState() public method

Managed instances become detached, any fetches will return data directly from the persistence "backend". It will also forget about new objects.
public clearState ( ) : void
return void
    public function clearState()
    {
        parent::clearState();
        $this->addedObjects = new \SplObjectStorage();
        $this->removedObjects = new \SplObjectStorage();
        $this->changedObjects = new \SplObjectStorage();
        $this->persistenceSession->destroy();
        $this->hasUnpersistedChanges = false;
    }

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);
 }