vendor/handcraftedinthealps/elasticsearch-bundle/EventListener/TerminateListener.php line 44

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the ONGR package.
  4.  *
  5.  * (c) NFQ Technologies UAB <info@nfq.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace ONGR\ElasticsearchBundle\EventListener;
  11. use ONGR\ElasticsearchBundle\Service\Manager;
  12. use Symfony\Component\DependencyInjection\Container;
  13. class TerminateListener
  14. {
  15.     /**
  16.      * @var Container
  17.      */
  18.     private $container;
  19.     /**
  20.      * @var array
  21.      */
  22.     private $managers;
  23.     /**
  24.      * Constructor
  25.      *
  26.      * @param Container $container
  27.      * @param array     $managers
  28.      */
  29.     public function __construct(Container $container, array $managers)
  30.     {
  31.         $this->container $container;
  32.         $this->managers $managers;
  33.     }
  34.     /**
  35.      * Forces commit to elasticsearch on kernel terminate
  36.      */
  37.     public function onKernelTerminate()
  38.     {
  39.         foreach ($this->managers as $key => $value) {
  40.             if ($value['force_commit']) {
  41.                 try {
  42.                     $managerName sprintf('es.manager.%s'$key);
  43.                     // Ignore managers who have not been initialized.
  44.                     if (!$this->container->initialized($managerName)) {
  45.                         continue;
  46.                     }
  47.                     /** @var Manager $manager */
  48.                     $manager $this->container->get($managerName);
  49.                 } catch (\Exception $e) {
  50.                     continue;
  51.                 }
  52.                 $manager->commit();
  53.             }
  54.         }
  55.     }
  56. }