public function executePersists() { foreach ($this->unitOfWork->getObjectsToPersist() as $object) { $persister = $this->unitOfWork->getObjectPersister($object); $repository = $this->unitOfWork->getObjectRepository($object); $objectData = $persister->persistObject($object); $identifier = $repository->getObjectIdentifierFromData($objectData); $persister->assignIdentifier($object, $identifier); $this->objectIdentityMap->addToIdentityMap($object, $objectData); $this->eventDispatcher->dispatchLifecycleEvent(Events::postPersist, $object); } }
/** * @param string $className * @param array $data * * @return object */ private function createObject($className, array $data) { $repository = $this->objectManager->getRepository($className); $object = $repository->create($className); if ($object instanceof NotifyPropertyChanged) { $object->addPropertyChangedListener($this); } $this->eventDispatcher->dispatchPreLoad($object, $data); $repository->hydrate($object, $data); $this->eventDispatcher->dispatchPostLoad($object); $this->objectIdentityMap->addToIdentityMap($object, $data); return $object; }