Doctrine\ODM\PHPCR\UnitOfWork::getDocumentState PHP Метод

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

STATE_NEW: the document is not persisted, but a valid mapped document STATE_MANAGED: the document is tracked and will be updated on flush STATE_REMOVED: the document is scheduled for removal STATE_DETACHED: there is a corresponding Node in storage, but this document is not bound to it
public getDocumentState ( object $document ) : integer
$document object the document to get the state of
Результат integer one of the STATE_* constants of this class
    public function getDocumentState($document)
    {
        $oid = spl_object_hash($document);
        if (!isset($this->documentState[$oid])) {
            // this will only use the metadata if id is mapped
            $id = $this->determineDocumentId($document);
            if (!$id) {
                return self::STATE_NEW;
            }
            if ($this->getDocumentById($id)) {
                return self::STATE_DETACHED;
            }
            return $this->dm->getPhpcrSession()->nodeExists($id) ? self::STATE_DETACHED : self::STATE_NEW;
        }
        return $this->documentState[$oid];
    }

Usage Example

Пример #1
0
 /**
  * @author Rob Graham
  * 
  * Test the registering of a version of a document, state should be set to STATE_FROZEN
  */
 public function testRegisterDocumentForVersion()
 {
     // create a node of type frozenNode (which is a version)
     $node = $this->createNode('/version/doc', 'foo', 'nt:frozenNode');
     $document = $this->uow->getOrCreateDocument($this->type, $node);
     $this->uow->registerDocument($document, '/version/doc');
     $this->assertEquals(UnitOfWork::STATE_FROZEN, $this->uow->getDocumentState($document), 'A version of a document is frozen as expected');
 }
UnitOfWork