Doctrine\ORM\UnitOfWork::doRefresh PHP Method

doRefresh() private method

Executes a refresh operation on an entity.
private doRefresh ( object $entity, array &$visited )
$entity object The entity to refresh.
$visited array The already visited entities during cascades.
    private function doRefresh($entity, array &$visited)
    {
        $oid = spl_object_hash($entity);
        if (isset($visited[$oid])) {
            return; // Prevent infinite recursion
        }

        $visited[$oid] = $entity; // mark visited

        $class = $this->em->getClassMetadata(get_class($entity));
        if ($this->getEntityState($entity) == self::STATE_MANAGED) {
            $this->getEntityPersister($class->name)->refresh(
                array_combine($class->getIdentifierFieldNames(), $this->entityIdentifiers[$oid]),
                $entity
            );
        } else {
            throw new InvalidArgumentException("Entity is not MANAGED.");
        }
        
        $this->cascadeRefresh($entity, $visited);
    }