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

executeDeletions() private method

Executes all document deletions for documents of the specified type.
private executeDeletions ( ClassMetadata $class, array $documents, array $options = [] )
$class Doctrine\ODM\MongoDB\Mapping\ClassMetadata
$documents array Array of documents to delete
$options array Array of options to be used with remove()
    private function executeDeletions(ClassMetadata $class, array $documents, array $options = array())
    {
        $persister = $this->getDocumentPersister($class->name);
        foreach ($documents as $oid => $document) {
            if (!$class->isEmbeddedDocument) {
                $persister->delete($document, $options);
            }
            unset($this->documentDeletions[$oid], $this->documentIdentifiers[$oid], $this->originalDocumentData[$oid]);
            // Clear snapshot information for any referenced PersistentCollection
            // http://www.doctrine-project.org/jira/browse/MODM-95
            foreach ($class->associationMappings as $fieldMapping) {
                if (isset($fieldMapping['type']) && $fieldMapping['type'] === ClassMetadata::MANY) {
                    $value = $class->reflFields[$fieldMapping['fieldName']]->getValue($document);
                    if ($value instanceof PersistentCollectionInterface) {
                        $value->clearSnapshot();
                    }
                }
            }
            // Document with this $oid after deletion treated as NEW, even if the $oid
            // is obtained by a new document because the old one went out of scope.
            $this->documentStates[$oid] = self::STATE_NEW;
            $this->lifecycleEventManager->postRemove($class, $document);
        }
    }
UnitOfWork