Команда 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,
которая создаёт консольную команду