Advertisement
Guest User

Untitled

a guest
Dec 27th, 2016
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.77 KB | None | 0 0
  1. namespace AppBundle\Listener\Entity;
  2.  
  3. use AppBundle\Entity\Ticket;
  4. use AppBundle\Event\TicketEvent;
  5. use AppBundle\Event\TicketEvents;
  6. use Doctrine\ORM\Event\LifecycleEventArgs;
  7. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  8.  
  9. /**
  10.  * @author Sullivan Senechal <soullivaneuh@gmail.com>
  11.  */
  12. final class TicketEntityListener
  13. {
  14.     /**
  15.      * @var EventDispatcherInterface
  16.      */
  17.     private $eventDispatcher;
  18.  
  19.     /**
  20.      * @param EventDispatcherInterface $eventDispatcher
  21.      */
  22.     public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
  23.     {
  24.         $this->eventDispatcher = $eventDispatcher;
  25.     }
  26.  
  27.     /**
  28.      * @param Ticket             $ticket
  29.      * @param LifecycleEventArgs $eventArgs
  30.      */
  31.     public function postPersist(Ticket $ticket, LifecycleEventArgs $eventArgs)
  32.     {
  33.         $this->eventDispatcher->dispatch(TicketEvents::OPEN, new TicketEvent($ticket));
  34.     }
  35.  
  36.     /**
  37.      * @param Ticket             $ticket
  38.      * @param LifecycleEventArgs $eventArgs
  39.      */
  40.     public function postUpdate(Ticket $ticket, LifecycleEventArgs $eventArgs)
  41.     {
  42.         $changeSet = $eventArgs->getEntityManager()->getUnitOfWork()->getEntityChangeSet($ticket);
  43.  
  44.         if (array_key_exists('assigned', $changeSet)) {
  45.             $this->eventDispatcher->dispatch(TicketEvents::ASSIGNATION, new TicketEvent($ticket));
  46.         }
  47.  
  48.         if (array_key_exists('state', $changeSet) && Ticket::STATE_CLOSE === $ticket->getState()) {
  49.             $this->eventDispatcher->dispatch(TicketEvents::CLOSE, new TicketEvent($ticket));
  50.         }
  51.  
  52.         if (array_key_exists('feedbackScore', $changeSet)) {
  53.             $this->eventDispatcher->dispatch(TicketEvents::FEEDBACK, new TicketEvent($ticket));
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement