diff --git a/lib/Doctrine/ORM/Event/PostLoadEventDispatcher.php b/lib/Doctrine/ORM/Event/PostLoadEventDispatcher.php deleted file mode 100644 index ea5e10869..000000000 --- a/lib/Doctrine/ORM/Event/PostLoadEventDispatcher.php +++ /dev/null @@ -1,123 +0,0 @@ -. - */ - -namespace Doctrine\ORM\Event; - -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\Events; -use Doctrine\ORM\Query; - -/** - * Dispatcher for postLoad event on entities used during object hydration. - * - * @author Lukasz Cybula - * @since 2.4 - */ -class PostLoadEventDispatcher -{ - /** - * Entity Manager - * - * @var \Doctrine\ORM\EntityManager - */ - private $entityManager; - - /** - * Listeners Invoker - * - * @var \Doctrine\ORM\Event\ListenersInvoker - */ - private $invoker; - - /** - * Metadata Factory - * - * @var \Doctrine\ORM\Mapping\ClassMetadataFactory - */ - private $metadataFactory; - - /** - * The query hints - * - * @var array - */ - private $hints = array(); - - /** - * Entities enqueued for postLoad dispatching - * - * @var array - */ - private $entities = array(); - - /** - * Constructs a new dispatcher instance - * - * @param EntityManager $em - * @param array $hints - */ - public function __construct(EntityManager $em, array $hints = array()) - { - $this->entityManager = $em; - $this->metadataFactory = $em->getMetadataFactory(); - $this->invoker = $this->entityManager->getUnitOfWork()->getListenersInvoker(); - $this->hints = $hints; - } - - /** - * Dispatches postLoad event for specified entity or enqueues it for later dispatching - * - * @param object $entity - */ - public function dispatchPostLoad($entity) - { - $className = get_class($entity); - $meta = $this->metadataFactory->getMetadataFor($className); - $invoke = $this->invoker->getSubscribedSystems($meta, Events::postLoad); - - if ($invoke === ListenersInvoker::INVOKE_NONE) { - return; - } - - if (isset($this->hints[Query::HINT_INTERNAL_ITERATION])) { - $this->invoker->invoke($meta, Events::postLoad, $entity, new LifecycleEventArgs($entity, $this->entityManager), $invoke); - } else { - if ( ! isset($this->entities[$className])) { - $this->entities[$className] = array(); - } - - $this->entities[$className][] = $entity; - } - } - - /** - * Dispatches all enqueued postLoad events - */ - public function dispatchEnqueuedPostLoadEvents() - { - foreach ($this->entities as $class => $entities) { - $meta = $this->metadataFactory->getMetadataFor($class); - $invoke = $this->invoker->getSubscribedSystems($meta, Events::postLoad); - - foreach ($entities as $entity) { - $this->invoker->invoke($meta, Events::postLoad, $entity, new LifecycleEventArgs($entity, $this->entityManager), $invoke); - } - } - } -}