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

doRemove() приватный Метод

private doRemove ( $document, &$visited )
    private function doRemove($document, &$visited)
    {
        $oid = spl_object_hash($document);
        if (isset($visited[$oid])) {
            return;
        }
        $visited[$oid] = true;
        $state = $this->getDocumentState($document);
        switch ($state) {
            case self::STATE_NEW:
                unset($this->scheduledInserts[$oid]);
                break;
            case self::STATE_MANAGED:
                unset($this->scheduledMoves[$oid]);
                unset($this->scheduledReorders[$oid]);
                break;
            case self::STATE_DETACHED:
                throw new InvalidArgumentException('Detached document passed to remove(): ' . self::objToStr($document, $this->dm));
        }
        $this->scheduledRemovals[$oid] = $document;
        $this->setDocumentState($oid, self::STATE_REMOVED);
        $class = $this->dm->getClassMetadata(get_class($document));
        if ($invoke = $this->eventListenersInvoker->getSubscribedSystems($class, Event::preRemove)) {
            $this->eventListenersInvoker->invoke($class, Event::preRemove, $document, new LifecycleEventArgs($document, $this->dm), $invoke);
        }
        $this->cascadeRemove($class, $document, $visited);
    }
UnitOfWork