Перейти к основному содержимому

События

Во Flute существует система событий.

Чтобы прочесть события можно воспользоваться классом EventDispatcher либо хелпером events().

Как слушать события

Чтобы слушать события, нужно вызвать наш EventDispatcher, дать обработчик и вызывать слушателя:

events()->addListener(ResponseEvent::NAME, [
SomeHandler::class,
'onResponse'
]);

В данном примере мы слушаем события рендера Response и вызываем метод onResponse в классе SomeHandler, где аргументом будет сам ResponseEvent:

class SomeHandler
{
public function onResponse( ResponseEvent $event )
{
dd($event); // Смотрим что пришло в Response
}
}
warning

Метод слушателя должен быть публичным, иначе будет возникать ошибка!

Как создавать события

Пример созданного события ниже:


use Symfony\Contracts\EventDispatcher\Event;

class SomeEvent extends Event
{
public const NAME = 'event.name';

protected ?string $arg;

public function __construct(string $arg)
{
$this->arg = $arg;
}

public function getArg(): ?string
{
return $this->arg;
}
}

Мы создали класс, сделали в нем публичный NAME и далее создали произвольные методы.

Методы могут быть абсолютно любыми.

Чтобы делать dispatch нашего event, нам достаточно вызвать наш event таким образом:

$event = new SomeEvent('Events works!');

events()->dispatch($event, SomeEvent::NAME);

Список событий

Основные события рендеринга и маршрутизации

Имя файлаОписание события
AfterRenderEventСобытие, происходящее после завершения процесса рендеринга.
BeforeRenderEventСобытие, происходящее перед началом процесса рендеринга.
ChooseLangEventСобытие, происходящее при выборе языка.
LangChangedEventСобытие, сигнализирующее об изменении языка.
OnRouteFoundEventСобытие, происходящее при обнаружении маршрута в системе маршрутизации.
ProfileRenderEventСобытие, связанное с рендерингом профиля пользователя.
ResponseEventСобытие, связанное с формированием ответа сервера.
RoutingFinishedEventСобытие, происходящее после завершения процесса маршрутизации.
RoutingStartedEventСобытие, сигнализирующее о начале процесса маршрутизации.
SearchEventСобытие, связанное с функционалом поиска .

События пользовательской аутентификации и регистрации

Имя файлаОписание события
PasswordResetCompletedEventСобытие, сигнализирующее о завершении процесса сброса пароля.
PasswordResetRequestedEventСобытие, сигнализирующее о запросе на сброс пароля.
SocialLoggedInEventСобытие, связанное с входом через социальные сети.
SocialProviderAddedEventСобытие, происходящее при добавлении нового социального провайдера.
UserLoggedInEventСобытие, сигнализирующее о входе пользователя в систему.
UserLoggedOutEventСобытие, сигнализирующее о выходе пользователя из системы.
UserRegisteredEventСобытие, связанное с регистрацией нового пользователя.
UserVerifiedEventСобытие, подтверждающее верификацию пользователя.