vendor/novaway/elasticsearch-bundle/src/DataCollector/ElasticsearchDataCollector.php line 51

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Novaway\ElasticsearchBundle\DataCollector;
  4. use Novaway\ElasticsearchBundle\Event\SearchQuery;
  5. use Novaway\ElasticsearchBundle\Event\SearchResult;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\HttpKernel\DataCollector\DataCollector;
  10. class ElasticsearchDataCollector  extends DataCollector implements EventSubscriberInterface
  11. {
  12.     const QUERIES_KEY 'queries';
  13.     const RESULTS_KEY 'results';
  14.     public function collect(Request $requestResponse $response\Throwable $exception null)
  15.     {
  16.         // everything is collected via Events
  17.     }
  18.     public function getName()
  19.     {
  20.         return 'novaway_elasticsearch.data_collector';
  21.     }
  22.     public function reset()
  23.     {
  24.         $this->data = [
  25.             self::QUERIES_KEY => [],
  26.             self::RESULTS_KEY => [],
  27.         ];
  28.     }
  29.     public function getQueries(): array
  30.     {
  31.         return $this->data[self::QUERIES_KEY] ?? [];
  32.     }
  33.     public function getResults(): array
  34.     {
  35.         return $this->data[self::RESULTS_KEY] ?? [];
  36.     }
  37.     public function onSearchQuery(SearchQuery $event)
  38.     {
  39.         $this->data[self::QUERIES_KEY][$event->getTimestamp()] = $event->getBody();
  40.     }
  41.     public function onSearchResult(SearchResult $event)
  42.     {
  43.         $this->data[self::RESULTS_KEY][$event->getTimestamp()] = $event->getBody();
  44.     }
  45.     public static function getSubscribedEvents()
  46.     {
  47.         yield SearchQuery::NAME => 'onSearchQuery';
  48.         yield SearchResult::NAME => 'onSearchResult';
  49.     }
  50. }