Doctrine\ODM\PHPCR\UnitOfWork::cascadeRemove PHP Method

cascadeRemove() private method

private cascadeRemove ( ClassMetadata $class, $document, &$visited )
$class Doctrine\ODM\PHPCR\Mapping\ClassMetadata
    private function cascadeRemove(ClassMetadata $class, $document, &$visited)
    {
        foreach (array_merge($class->referenceMappings, $class->referrersMappings) as $fieldName) {
            $mapping = $class->mappings[$fieldName];
            if (!($mapping['cascade'] & ClassMetadata::CASCADE_REMOVE)) {
                continue;
            }
            $related = $class->reflFields[$fieldName]->getValue($document);
            if ($related instanceof Collection || is_array($related)) {
                // If its a PersistentCollection initialization is intended! No unwrap!
                foreach ($related as $relatedDocument) {
                    if (null !== $relatedDocument) {
                        $this->doRemove($relatedDocument, $visited);
                    }
                }
            } elseif ($related !== null) {
                $this->doRemove($related, $visited);
            }
        }
        // remove is cascaded to children automatically on PHPCR level
    }
UnitOfWork