Хелпер event в Laravel
Когда факт произошёл, событие
нужно отправить. Самый прямой
способ в коде приложения - хелпер
event. В него передают
уже созданный объект события
с данными в конструкторе.
Обычно вызов ставят после сохранения
модели: заказ создан - сразу
сообщаем приложению об этом.
Хелпер не требует фасада
и use для Event -
достаточно импорта класса события:
<?php
use App\Events\OrderShipped;
public function ship(Order $order)
{
// ... смена статуса, сохранение
event(new OrderShipped($order));
return 'Order shipped';
}
?>
После event(...) Laravel
найдёт всех слушателей этого
события и по очереди вызовет
их handle. Если слушателей
несколько, сработают все.
Если ни одного - вызов просто
ничего не сделает.
Важно: хелпер создаёт экземпляр
через new. Аргументы
конструктора события должны
совпадать с тем, что вы передаёте.
В следующем уроке разберём другой
синтаксис отправки - через
::dispatch у класса события.
После сохранения пользователя
вызовите event(new UserRegistered(...)).
Убедитесь, что слушатель
срабатывает (dump или лог
в handle).
Что передают в хелпер
event - класс или
уже созданный объект?