РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1229 of 1361 menu

Команда make:subscriber

Команда make:subscriber создаёт класс подписчика событий. Подписчик - это класс, который реализует интерфейс EventSubscriberInterface и возвращает список событий через метод getSubscribedEvents. Первым параметром команде передаётся имя создаваемого класса подписчика.

Синтаксис

php bin/console make:subscriber <name>

Пример

Давайте создадим подписчика с именем ArticleSubscriber:

php bin/console make:subscriber ArticleSubscriber

После выполнения команды Symfony спросит, какое событие должен слушать подписчик. Выберем событие kernel.request:

Which event do you want to listen to? > kernel.request

В результате будет создан файл src/EventSubscriber/ArticleSubscriber.php со следующим содержимым:

<?php namespace AppEventSubscriber; use SymfonyComponentEventDispatcherEventSubscriberInterface; use SymfonyComponentHttpKernelEventRequestEvent; class ArticleSubscriber implements EventSubscriberInterface { public function onKernelRequest(RequestEvent $event): void { // ... } public static function getSubscribedEvents(): array { return [ 'kernel.request' => 'onKernelRequest', ]; } } ?>

Пример

Давайте допишем логику в метод onKernelRequest, чтобы он выводил приветствие при каждом запросе:

<?php namespace AppEventSubscriber; use SymfonyComponentEventDispatcherEventSubscriberInterface; use SymfonyComponentHttpKernelEventRequestEvent; class ArticleSubscriber implements EventSubscriberInterface { public function onKernelRequest(RequestEvent $event): void { echo 'hello'; } public static function getSubscribedEvents(): array { return [ 'kernel.request' => 'onKernelRequest', ]; } } ?>

Результат выполнения кода при открытии любой страницы сайта:

hello

Смотрите также

  • команда make:listener,
    которая создаёт слушателя событий
  • команда debug:event-dispatcher,
    которая показывает слушателей событий
  • команда make:controller,
    которая создаёт класс контроллера
  • команда make:command,
    которая создаёт консольную команду
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить