Doctrine\ORM\UnitOfWork::doDetach PHP Method

doDetach() private method

Executes a detach operation on the given entity.
private doDetach ( object $entity, array &$visited )
$entity object
$visited array
    private function doDetach($entity, array &$visited)
    {
        $oid = spl_object_hash($entity);
        if (isset($visited[$oid])) {
            return; // Prevent infinite recursion
        }

        $visited[$oid] = $entity; // mark visited
        
        switch ($this->getEntityState($entity, self::STATE_DETACHED)) {
            case self::STATE_MANAGED:
                $this->removeFromIdentityMap($entity);
                unset($this->entityInsertions[$oid], $this->entityUpdates[$oid],
                        $this->entityDeletions[$oid], $this->entityIdentifiers[$oid],
                        $this->entityStates[$oid], $this->originalEntityData[$oid]);
                break;
            case self::STATE_NEW:
            case self::STATE_DETACHED:
                return;
        }
        
        $this->cascadeDetach($entity, $visited);
    }