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

lock() public method

Acquire a lock on the given document.
public lock ( object $document, integer $lockMode, integer $lockVersion = null )
$document object
$lockMode integer
$lockVersion integer
    public function lock($document, $lockMode, $lockVersion = null)
    {
        if ($this->getDocumentState($document) != self::STATE_MANAGED) {
            throw new \InvalidArgumentException('Document is not MANAGED.');
        }
        $documentName = get_class($document);
        $class = $this->dm->getClassMetadata($documentName);
        if ($lockMode == LockMode::OPTIMISTIC) {
            if (!$class->isVersioned) {
                throw LockException::notVersioned($documentName);
            }
            if ($lockVersion != null) {
                $documentVersion = $class->reflFields[$class->versionField]->getValue($document);
                if ($documentVersion != $lockVersion) {
                    throw LockException::lockFailedVersionMissmatch($document, $lockVersion, $documentVersion);
                }
            }
        } elseif (in_array($lockMode, array(LockMode::PESSIMISTIC_READ, LockMode::PESSIMISTIC_WRITE))) {
            $this->getDocumentPersister($class->name)->lock($document, $lockMode);
        }
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Acquire a lock on the given document.
  *
  * @param object $document
  * @param int $lockMode
  * @param int $lockVersion
  * @throws LockException
  * @throws LockException
  */
 public function lock($document, $lockMode, $lockVersion = null)
 {
     if (!is_object($document)) {
         throw new \InvalidArgumentException(gettype($document));
     }
     $this->unitOfWork->lock($document, $lockMode, $lockVersion);
 }
All Usage Examples Of Doctrine\ODM\MongoDB\UnitOfWork::lock
UnitOfWork