我对Laravel的事件处理程序和监听器有疑问。我不知道从哪里开始。
我想知道什么是事件以及何时使用它们。此外,我想知道组织事件和听众的最佳方式是什么,以及放置它们的位置(在哪个文件夹中)。
任何帮助将不胜感激;)
答案 0 :(得分:7)
我最近实施了一个动作Feed,例如:创建帖子时,会注册新用户,或者其他任何人。每个动作都会触发一个事件,并且对于每个事件都有一个听众,它可以保存类似于" User 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。
但如果您要举办大量活动,则不应将所有活动都放在一个文件中。请参阅Event Subscribers。