vendor/javer/sphinx-bundle/Event/Subscriber/PaginateSphinxQuerySubscriber.php line 23

Open in your IDE?
  1. <?php
  2. namespace Javer\SphinxBundle\Event\Subscriber;
  3. use Javer\SphinxBundle\Sphinx\Query;
  4. use Knp\Component\Pager\Event\ItemsEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. class PaginateSphinxQuerySubscriber implements EventSubscriberInterface
  7. {
  8. /**
  9. * Returns an array of event names this subscriber wants to listen to.
  10. *
  11. * @return array<string, array{string, int}>
  12. */
  13. public static function getSubscribedEvents(): array
  14. {
  15. return [
  16. 'knp_pager.items' => ['items', 0],
  17. ];
  18. }
  19. public function items(ItemsEvent $event): void
  20. {
  21. if ($event->target instanceof Query) {
  22. $query = $event->target;
  23. $query->offset($event->getOffset());
  24. $query->limit($event->getLimit());
  25. $event->items = $query->getResults();
  26. $event->count = $query->getTotalFound();
  27. $event->stopPropagation();
  28. }
  29. }
  30. }