Обработчики событий и слушатели Laravel

У меня есть вопрос о обработчиках событий и слушателях Laravel. Я понятия не имею, с чего начать.

Я хотел бы знать, что именно являются событиями и когда их использовать. Также мне хотелось бы знать, каков наилучший способ организации мероприятий и слушателей и где их разместить (в какой папке).

Любая помощь будет оценена;)

1 ответ

Решение

Недавно я реализовал ленту для действий, например, когда создается сообщение, регистрируется новый пользователь или что-то еще. Каждое действие запускает событие, и для каждого события есть слушатель, который сохраняет что-то вроде "Пользователь XY только что зарегистрирован!" в базе данных.

Очень базовая версия:

// app/controllers/RegistrationController.php
class RegistrationController {
    public function register($name) {
        User::create([
            'name' => $name
        });

        Event::fire('user.registered', [$name]);
    }
}

// app/events.php
Event::listen('user.registered', function($name) {
    DB::table('feed')->insert(
        [
            'action' => 'User ' . $name . ' just registered!'
            // ...
        }
    );
});

Чтобы использовать файл events.php, добавьте следующую строку в app/start/global.php

require app_path().'/events.php';

Теперь вы можете поместить все события в events.php.


Но если у вас будет много событий, вам не следует помещать все свои события в один файл. Смотрите подписчиков событий.

Другие вопросы по тегам