Neos\Flow\Persistence\Doctrine\PersistenceManager::onFlush PHP Метод

onFlush() публичный Метод

An onFlush event listener used to validate entities upon persistence.
public onFlush ( Doctrine\ORM\Event\OnFlushEventArgs $eventArgs ) : void
$eventArgs Doctrine\ORM\Event\OnFlushEventArgs
Результат void
    public function onFlush(\Doctrine\ORM\Event\OnFlushEventArgs $eventArgs)
    {
        $unitOfWork = $this->entityManager->getUnitOfWork();
        $entityInsertions = $unitOfWork->getScheduledEntityInsertions();
        $validatedInstancesContainer = new \SplObjectStorage();
        $knownValueObjects = [];
        foreach ($entityInsertions as $entity) {
            $className = TypeHandling::getTypeForValue($entity);
            if ($this->reflectionService->getClassSchema($className)->getModelType() === ClassSchema::MODELTYPE_VALUEOBJECT) {
                $identifier = $this->getIdentifierByObject($entity);
                if (isset($knownValueObjects[$className][$identifier]) || $unitOfWork->getEntityPersister($className)->exists($entity)) {
                    unset($entityInsertions[spl_object_hash($entity)]);
                    continue;
                }
                $knownValueObjects[$className][$identifier] = true;
            }
            $this->validateObject($entity, $validatedInstancesContainer);
        }
        ObjectAccess::setProperty($unitOfWork, 'entityInsertions', $entityInsertions, true);
        foreach ($unitOfWork->getScheduledEntityUpdates() as $entity) {
            $this->validateObject($entity, $validatedInstancesContainer);
        }
    }