Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: User
- * Date: 08.01.16
- * Time: 16:58
- */
- namespace Autowimar\CoreBundle\Listener;
- use APCUIterator;
- use Autowimar\CoreBundle\Entity\ExternalOrderingCompany;
- use Autowimar\CoreBundle\Entity\FinalCarUser;
- use Autowimar\CoreBundle\Entity\ReadOrder;
- use Autowimar\CoreBundle\Entity\RentOrder;
- use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
- use Doctrine\ORM\Event\OnFlushEventArgs;
- use Doctrine\ORM\Event\PostFlushEventArgs;
- use Symfony\Component\DependencyInjection\Container;
- class EntityListener
- {
- /**
- * @var Container
- */
- protected $container;
- public function __construct(Container $container)
- {
- $this->container = $container;
- }
- public function onFlush(OnFlushEventArgs $args)
- {
- $em = $args->getEntityManager();
- $uow = $em->getUnitOfWork();
- $uow->computeChangeSets();
- $entities = array_merge(
- $uow->getScheduledEntityInsertions(),
- $uow->getScheduledEntityUpdates(),
- $uow->getScheduledEntityDeletions()
- );
- foreach($entities as $entity) {
- if($entity instanceof FinalCarUser) {
- apcu_delete('finalCarUserNames');
- apcu_delete('finalCarUserNamesWithId');
- apcu_delete('finalCarUsersWithDocument');
- // $toDelete = new APCIterator('user', '/^rent_orders_kam_/', APC_ITER_VALUE);
- // apcu_delete($toDelete);
- $toDelete = new APCUIterator('/^rent_orders_ogrodnik/', APC_ITER_KEY);
- apcu_delete($toDelete);
- }
- if($entity instanceof ExternalOrderingCompany) {
- apcu_delete('externalOrderingCompaniesWithNip');
- apcu_delete('finalCarUserNamesWithId');
- apcu_delete('finalCarUsersWithDocument');
- // $toDelete = new APCIterator('user', '/^rent_orders_kam_/', APC_ITER_VALUE);
- // apcu_delete($toDelete);
- $toDelete = new APCUIterator('/^rent_orders_ogrodnik/', APC_ITER_KEY);
- apcu_delete($toDelete);
- }
- if($entity instanceof RentOrder){
- $toDelete = new APCUIterator('/^rent_orders/', APC_ITER_KEY);
- apcu_delete($toDelete);
- }
- if($entity instanceof ReadOrder){
- $userId = $entity->getUser()->getId();
- apcu_delete('read_orders'.$userId);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment