Создание события в Laravel
Класс события создают командой
Artisan. Имя обычно отражает факт
в прошедшем времени: OrderShipped,
UserRegistered, PostPublished.
По имени сразу видно, что произошло.
php artisan make:event OrderShipped
Файл появится в папке
app/Events. Если папки
ещё не было, Artisan создаст её сам.
В классе часто уже есть трейт
Dispatchable - он пригодится
позже для короткой отправки. Сейчас
главное другое: событие хранит данные.
В конструктор передают то, что нужно
слушателям: модель заказа, id пользователя,
строку с причиной. Публичные свойства
удобны - слушатель прочитает их
как $event->order:
<?php
namespace App\Events;
use App\Models\Order;
use Illuminate\Foundation\Events\Dispatchable;
class OrderShipped
{
use Dispatchable;
public function __construct(
public Order $order
) {}
}
?>
В событии не шлют письма и не пишут в лог. Только данные о факте. Реакцию сделаем в слушателе в следующих уроках.
Создайте событие
UserRegistered.
Передайте в конструктор модель пользователя или его id.
В какой папке лежит класс и что он должен хранить - логику или данные?