Doctrine\ORM\UnitOfWork::executeUpdates PHP Method

executeUpdates() private method

Executes all entity updates for entities of the specified type.
private executeUpdates ( Doctrine\ORM\Mapping\ClassMetadata $class )
$class Doctrine\ORM\Mapping\ClassMetadata
    private function executeUpdates($class)
    {
        $className = $class->name;
        $persister = $this->getEntityPersister($className);

        $hasPreUpdateLifecycleCallbacks = isset($class->lifecycleCallbacks[Events::preUpdate]);
        $hasPreUpdateListeners = $this->evm->hasListeners(Events::preUpdate);
        $hasPostUpdateLifecycleCallbacks = isset($class->lifecycleCallbacks[Events::postUpdate]);
        $hasPostUpdateListeners = $this->evm->hasListeners(Events::postUpdate);
        
        foreach ($this->entityUpdates as $oid => $entity) {
            if (get_class($entity) == $className || $entity instanceof Proxy && $entity instanceof $className) {
                
                if ($hasPreUpdateLifecycleCallbacks) {
                    $class->invokeLifecycleCallbacks(Events::preUpdate, $entity);
                    $this->recomputeSingleEntityChangeSet($class, $entity);
                }
                
                if ($hasPreUpdateListeners) {
                    $this->evm->dispatchEvent(Events::preUpdate, new Event\PreUpdateEventArgs(
                        $entity, $this->em, $this->entityChangeSets[$oid])
                    );
                }

                $persister->update($entity);
                unset($this->entityUpdates[$oid]);
                
                if ($hasPostUpdateLifecycleCallbacks) {
                    $class->invokeLifecycleCallbacks(Events::postUpdate, $entity);
                }
                if ($hasPostUpdateListeners) {
                    $this->evm->dispatchEvent(Events::postUpdate, new LifecycleEventArgs($entity, $this->em));
                }
            }
        }
    }