Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace AppBundle\Listener\Entity;
- use AppBundle\Entity\Ticket;
- use AppBundle\Event\TicketEvent;
- use AppBundle\Event\TicketEvents;
- use Doctrine\ORM\Event\LifecycleEventArgs;
- use Symfony\Component\EventDispatcher\EventDispatcherInterface;
- /**
- * @author Sullivan Senechal <soullivaneuh@gmail.com>
- */
- final class TicketEntityListener
- {
- /**
- * @var EventDispatcherInterface
- */
- private $eventDispatcher;
- /**
- * @param EventDispatcherInterface $eventDispatcher
- */
- public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
- {
- $this->eventDispatcher = $eventDispatcher;
- }
- /**
- * @param Ticket $ticket
- * @param LifecycleEventArgs $eventArgs
- */
- public function postPersist(Ticket $ticket, LifecycleEventArgs $eventArgs)
- {
- $this->eventDispatcher->dispatch(TicketEvents::OPEN, new TicketEvent($ticket));
- }
- /**
- * @param Ticket $ticket
- * @param LifecycleEventArgs $eventArgs
- */
- public function postUpdate(Ticket $ticket, LifecycleEventArgs $eventArgs)
- {
- $changeSet = $eventArgs->getEntityManager()->getUnitOfWork()->getEntityChangeSet($ticket);
- if (array_key_exists('assigned', $changeSet)) {
- $this->eventDispatcher->dispatch(TicketEvents::ASSIGNATION, new TicketEvent($ticket));
- }
- if (array_key_exists('state', $changeSet) && Ticket::STATE_CLOSE === $ticket->getState()) {
- $this->eventDispatcher->dispatch(TicketEvents::CLOSE, new TicketEvent($ticket));
- }
- if (array_key_exists('feedbackScore', $changeSet)) {
- $this->eventDispatcher->dispatch(TicketEvents::FEEDBACK, new TicketEvent($ticket));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement