vendor/knplabs/knp-components/src/Knp/Component/Pager/Event/Subscriber/Paginate/PaginationSubscriber.php line 18

Open in your IDE?
  1. <?php
  2. namespace Knp\Component\Pager\Event\Subscriber\Paginate;
  3. use Knp\Component\Pager\Event\BeforeEvent;
  4. use Knp\Component\Pager\Event\PaginationEvent;
  5. use Knp\Component\Pager\Pagination\SlidingPagination;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class PaginationSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * Lazy-load state tracker
  11.      * @var bool
  12.      */
  13.     private $isLoaded false;
  14.     public function pagination(PaginationEvent $event): void
  15.     {
  16.         $event->setPagination(new SlidingPagination);
  17.         $event->stopPropagation();
  18.     }
  19.     public function before(BeforeEvent $event): void
  20.     {
  21.         // Do not lazy-load more than once
  22.         if ($this->isLoaded) {
  23.             return;
  24.         }
  25.         /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */
  26.         $dispatcher $event->getEventDispatcher();
  27.         // hook all standard subscribers
  28.         $dispatcher->addSubscriber(new ArraySubscriber);
  29.         $dispatcher->addSubscriber(new Callback\CallbackSubscriber);
  30.         $dispatcher->addSubscriber(new Doctrine\ORM\QueryBuilderSubscriber);
  31.         $dispatcher->addSubscriber(new Doctrine\ORM\QuerySubscriber);
  32.         $dispatcher->addSubscriber(new Doctrine\ODM\MongoDB\QueryBuilderSubscriber);
  33.         $dispatcher->addSubscriber(new Doctrine\ODM\MongoDB\QuerySubscriber);
  34.         $dispatcher->addSubscriber(new Doctrine\ODM\PHPCR\QueryBuilderSubscriber);
  35.         $dispatcher->addSubscriber(new Doctrine\ODM\PHPCR\QuerySubscriber);
  36.         $dispatcher->addSubscriber(new Doctrine\CollectionSubscriber);
  37.         $dispatcher->addSubscriber(new Doctrine\DBALQueryBuilderSubscriber);
  38.         $dispatcher->addSubscriber(new PropelQuerySubscriber);
  39.         $dispatcher->addSubscriber(new SolariumQuerySubscriber());
  40.         $dispatcher->addSubscriber(new ElasticaQuerySubscriber());
  41.         $this->isLoaded true;
  42.     }
  43.     public static function getSubscribedEvents(): array
  44.     {
  45.         return [
  46.             'knp_pager.before' => ['before'0],
  47.             'knp_pager.pagination' => ['pagination'0],
  48.         ];
  49.     }
  50. }