Обработчики событий и слушатели 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.
Но если у вас будет много событий, вам не следует помещать все свои события в один файл. Смотрите подписчиков событий.