Команда debug:event-dispatcher
Команда debug:event-dispatcher показывает
все слушатели событий, которые зарегистрированы
в контейнере Symfony. Первым параметром можно
передать имя конкретного события, чтобы увидеть
только его слушателей. Вторым параметром
передаётся формат вывода.
Синтаксис
php bin/console debug:event-dispatcher [event] [--format=format]
Пример
Давайте выведем всех слушателей событий:
php bin/console debug:event-dispatcher
Результат выполнения команды:
"Registered Listeners Grouped by Event"
"====================================="
""
"console.command (4)"
"==================="
""
" Symfony\Component\Console\EventListener\ErrorListener::onConsoleCommand 0"
" Symfony\Bundle\FrameworkBundle\EventListener\SuggestMissingPackageSubscriber::onConsoleCommand 0"
" Symfony\Component\Console\EventListener\ErrorListener::onConsoleError 0"
" Symfony\Component\Console\EventListener\ErrorListener::onConsoleTerminate 0"
""
"kernel.request (6)"
"=================="
""
" Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure 2048"
" Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest 256"
" Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest 128"
Пример
Давайте выведем слушателей только для события
kernel.request:
php bin/console debug:event-dispatcher kernel.request
Результат выполнения команды:
"Listeners of kernel.request event"
"================================="
""
" Order Callable Priority"
" ----- ------------------------------------------------------------------------- --------"
" 1 Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure 2048"
" 2 Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest 256"
" 3 Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest 128"
Пример
Давайте зарегистрируем собственный слушатель и проверим его через команду. Создадим класс слушателя:
<?php
namespace App\EventListener;
use Symfony\Component\HttpKernel\Event\RequestEvent;
class ArticleListener
{
public function onKernelRequest(RequestEvent $event): void
{
// some logic
}
}
?>
Зарегистрируем его в конфигурации сервисов:
services:
App\EventListener\ArticleListener:
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 100 }
Теперь проверим регистрацию через команду:
php bin/console debug:event-dispatcher kernel.request
Результат выполнения команды:
"Listeners of kernel.request event"
"================================="
""
" Order Callable Priority"
" ----- ------------------------------------------------------------------------- --------"
" 1 App\EventListener\ArticleListener::onKernelRequest 100"
" 2 Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure 2048"
" 3 Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest 256"
Смотрите также
-
команда
make:subscriber,
которая создаёт подписчик на события -
команда
make:listener,
которая создаёт слушатель событий -
команда
debug:container,
которая выводит информацию о сервисах контейнера -
команда
debug:router,
которая выводит список зарегистрированных маршрутов