src/Postroyka/AppBundle/EventListener/PageSearchQueryListener.php line 36

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Postroyka\AppBundle\EventListener;
  4. use Submarine\PagesBundle\Event\PageSearchQueryEvent;
  5. use Submarine\PagesBundle\Manager\PageSearchQueryManager;
  6. use Submarine\PagesBundle\Entity\PageSearchQuery;
  7. use Psr\Log\LoggerInterface;
  8. /**
  9.  * Save search queries
  10.  */
  11. class PageSearchQueryListener
  12. {
  13.     /**
  14.      * @var PageSearchQueryManager
  15.      */
  16.     private $searchQueryManager;
  17.     /**
  18.      * @var LoggerInterface
  19.      */
  20.     private $logger;
  21.     public function __construct(PageSearchQueryManager $searchQueryManagerLoggerInterface $logger)
  22.     {
  23.         $this->searchQueryManager $searchQueryManager;
  24.         $this->logger $logger;
  25.     }
  26.     /**
  27.      * @param PageSearchQueryEvent $event
  28.      */
  29.     public function onSearchQueryCreate(PageSearchQueryEvent $event): void
  30.     {
  31.         try {
  32.             $user $event->getUser();
  33.             $searchQuery = new PageSearchQuery(
  34.                 trim($event->getQuery()),
  35.                 $user $user->getId() : null
  36.             );
  37.             $this->searchQueryManager->create($searchQuery);
  38.         } catch (\Throwable $e) {
  39.             $this->logger->error("Ошибка записи запросов поиска: {message} \n{trace}", [
  40.                 'message' => $e->getMessage(),
  41.                 'trace' => $e->getTraceAsString()
  42.             ]);
  43.         }
  44.     }
  45. }