target) && 2 === count($event->target) && reset($event->target) instanceof SearchableInterface && end($event->target) instanceof Query) { [$searchable, $query] = $event->target; $query->setFrom($event->getOffset()); $query->setSize($event->getLimit()); $results = $searchable->search($query); $event->count = $results->getTotalHits(); if ($results->hasAggregations()) { $event->setCustomPaginationParameter('aggregations', $results->getAggregations()); } $event->setCustomPaginationParameter('resultSet', $results); $event->items = $results->getResults(); $event->stopPropagation(); } } public static function getSubscribedEvents(): array { return [ 'knp_pager.items' => ['items', 0], /* triggers before a standard array subscriber*/ ]; } }