src/App/EventSubscriber/App/SearchtermEnteredEventSubscriber.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber\App;
  3. use App\Event\SearchtermEnteredEvent;
  4. use App\Service\ActivityMonitoringService;
  5. use App\Service\ConversionEventService;
  6. use App\Service\SearchtermEnteredEventService;
  7. use Exception;
  8. use Psr\Log\LoggerInterface;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\HttpFoundation\RequestStack;
  11. class SearchtermEnteredEventSubscriber implements EventSubscriberInterface
  12. {
  13. /** @var ActivityMonitoringService */
  14. private $activityMonitoringService;
  15. /** @var LoggerInterface */
  16. private $logger;
  17. /** @var ConversionEventService */
  18. private $conversionEventService;
  19. /** @var RequestStack */
  20. private $requestStack;
  21. /** @var SearchtermEnteredEventService */
  22. private $searchtermEnteredEventService;
  23. public function __construct(ActivityMonitoringService $activityMonitoringService, LoggerInterface $logger, ConversionEventService $conversionEventService, RequestStack $requestStack, SearchtermEnteredEventService $searchtermEnteredEventService)
  24. {
  25. $this->activityMonitoringService = $activityMonitoringService;
  26. $this->logger = $logger;
  27. $this->conversionEventService = $conversionEventService;
  28. $this->requestStack = $requestStack;
  29. $this->searchtermEnteredEventService = $searchtermEnteredEventService;
  30. }
  31. public static function getSubscribedEvents()
  32. {
  33. return [
  34. SearchtermEnteredEvent::class => 'onSearchtermEnteredEvent',
  35. ];
  36. }
  37. /** @throws Exception */
  38. public function onSearchtermEnteredEvent(SearchtermEnteredEvent $event): void
  39. {
  40. $this->searchtermEnteredEventService->writeEvent(
  41. $event->getRequest(),
  42. $event->getSearchterm(),
  43. $event->getContext(),
  44. $event->getResultset(),
  45. $event->getMergedResultset(),
  46. $event->getUser(),
  47. $event->getTotalNumberOfResults(),
  48. $event->getNumberOfResultsPerBlock()
  49. );
  50. }
  51. }