Guest User

Untitled

a guest
Mar 8th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.51 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: User
  5.  * Date: 08.01.16
  6.  * Time: 16:58
  7.  */
  8. namespace Autowimar\CoreBundle\Listener;
  9.  
  10. use APCUIterator;
  11. use Autowimar\CoreBundle\Entity\ExternalOrderingCompany;
  12. use Autowimar\CoreBundle\Entity\FinalCarUser;
  13. use Autowimar\CoreBundle\Entity\ReadOrder;
  14. use Autowimar\CoreBundle\Entity\RentOrder;
  15. use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
  16. use Doctrine\ORM\Event\OnFlushEventArgs;
  17. use Doctrine\ORM\Event\PostFlushEventArgs;
  18. use Symfony\Component\DependencyInjection\Container;
  19.  
  20. class EntityListener
  21. {
  22.     /**
  23.      * @var Container
  24.      */
  25.     protected $container;
  26.  
  27.     public function __construct(Container $container)
  28.     {
  29.         $this->container = $container;
  30.     }
  31.  
  32.     public function onFlush(OnFlushEventArgs $args)
  33.     {
  34.         $em = $args->getEntityManager();
  35.         $uow = $em->getUnitOfWork();
  36.         $uow->computeChangeSets();
  37.         $entities = array_merge(
  38.             $uow->getScheduledEntityInsertions(),
  39.             $uow->getScheduledEntityUpdates(),
  40.             $uow->getScheduledEntityDeletions()
  41.         );
  42.         foreach($entities as $entity) {
  43.             if($entity instanceof FinalCarUser) {
  44.                 apcu_delete('finalCarUserNames');
  45.                 apcu_delete('finalCarUserNamesWithId');
  46.                 apcu_delete('finalCarUsersWithDocument');
  47.                 // $toDelete = new APCIterator('user', '/^rent_orders_kam_/', APC_ITER_VALUE);
  48.                 // apcu_delete($toDelete);
  49.                 $toDelete = new APCUIterator('/^rent_orders_ogrodnik/', APC_ITER_KEY);
  50.                 apcu_delete($toDelete);
  51.             }
  52.             if($entity instanceof ExternalOrderingCompany) {
  53.                 apcu_delete('externalOrderingCompaniesWithNip');
  54.                 apcu_delete('finalCarUserNamesWithId');
  55.                 apcu_delete('finalCarUsersWithDocument');
  56.                 // $toDelete = new APCIterator('user', '/^rent_orders_kam_/', APC_ITER_VALUE);
  57.                 // apcu_delete($toDelete);
  58.                 $toDelete = new APCUIterator('/^rent_orders_ogrodnik/', APC_ITER_KEY);
  59.                 apcu_delete($toDelete);
  60.             }
  61.             if($entity instanceof RentOrder){
  62.                 $toDelete = new APCUIterator('/^rent_orders/', APC_ITER_KEY);
  63.                 apcu_delete($toDelete);
  64.             }
  65.             if($entity instanceof ReadOrder){
  66.                 $userId = $entity->getUser()->getId();
  67.                 apcu_delete('read_orders'.$userId);
  68.             }
  69.         }
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment