vendor/knplabs/knp-components/src/Knp/Component/Pager/Event/Subscriber/Sortable/SortableSubscriber.php line 15

  1. <?php
  2. namespace Knp\Component\Pager\Event\Subscriber\Sortable;
  3. use Knp\Component\Pager\Event\BeforeEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. class SortableSubscriber implements EventSubscriberInterface
  6. {
  7.     /**
  8.      * Lazy-load state tracker
  9.      */
  10.     private bool $isLoaded false;
  11.     public function before(BeforeEvent $event): void
  12.     {
  13.         // Do not lazy-load more than once
  14.         if ($this->isLoaded) {
  15.             return;
  16.         }
  17.         /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */
  18.         $dispatcher $event->getEventDispatcher();
  19.         // hook all standard sortable subscribers
  20.         $argumentAccess $event->getArgumentAccess();
  21.         $dispatcher->addSubscriber(new Doctrine\ORM\QuerySubscriber($argumentAccess));
  22.         $dispatcher->addSubscriber(new Doctrine\ODM\MongoDB\QuerySubscriber($argumentAccess));
  23.         $dispatcher->addSubscriber(new ElasticaQuerySubscriber($argumentAccess));
  24.         $dispatcher->addSubscriber(new PropelQuerySubscriber($argumentAccess));
  25.         $dispatcher->addSubscriber(new SolariumQuerySubscriber($argumentAccess));
  26.         $dispatcher->addSubscriber(new ArraySubscriber($argumentAccess));
  27.         $this->isLoaded true;
  28.     }
  29.     public static function getSubscribedEvents(): array
  30.     {
  31.         return [
  32.             'knp_pager.before' => ['before'1],
  33.         ];
  34.     }
  35. }