Doctrine\ODM\MongoDB\UnitOfWork::recomputeSingleDocumentChangeSet PHP Method

recomputeSingleDocumentChangeSet() public method

The passed document must be a managed document. If the document already has a change set because this method is invoked during a commit cycle then the change sets are added. whereby changes detected in this method prevail.
public recomputeSingleDocumentChangeSet ( ClassMetadata $class, object $document )
$class Doctrine\ODM\MongoDB\Mapping\ClassMetadata The class descriptor of the document.
$document object The document for which to (re)calculate the change set.
    public function recomputeSingleDocumentChangeSet(ClassMetadata $class, $document)
    {
        // Ignore uninitialized proxy objects
        if ($document instanceof Proxy && !$document->__isInitialized__) {
            return;
        }
        $oid = spl_object_hash($document);
        if (!isset($this->documentStates[$oid]) || $this->documentStates[$oid] != self::STATE_MANAGED) {
            throw new \InvalidArgumentException('Document must be managed.');
        }
        if (!$class->isInheritanceTypeNone()) {
            $class = $this->dm->getClassMetadata(get_class($document));
        }
        $this->computeOrRecomputeChangeSet($class, $document, true);
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Invokes preUpdate callbacks and events for given document cascading them to embedded documents as well.
  *
  * @param ClassMetadata $class
  * @param object $document
  */
 public function preUpdate(ClassMetadata $class, $document)
 {
     if (!empty($class->lifecycleCallbacks[Events::preUpdate])) {
         $class->invokeLifecycleCallbacks(Events::preUpdate, $document, array(new PreUpdateEventArgs($document, $this->dm, $this->uow->getDocumentChangeSet($document))));
         $this->uow->recomputeSingleDocumentChangeSet($class, $document);
     }
     $this->evm->dispatchEvent(Events::preUpdate, new PreUpdateEventArgs($document, $this->dm, $this->uow->getDocumentChangeSet($document)));
     $this->cascadePreUpdate($class, $document);
 }
All Usage Examples Of Doctrine\ODM\MongoDB\UnitOfWork::recomputeSingleDocumentChangeSet
UnitOfWork