【发布时间】:2014-06-30 22:08:41
【问题描述】:
我有一个关于 Laravel 的事件处理程序和监听器的问题。我不知道从哪里开始。
我想知道究竟什么是事件以及何时使用它们。另外我想知道组织活动和听众的最佳方式是什么,以及将它们放置在哪里(在哪个文件夹中)。
任何帮助将不胜感激;)
【问题讨论】:
标签: events laravel laravel-4 listeners handlers
我有一个关于 Laravel 的事件处理程序和监听器的问题。我不知道从哪里开始。
我想知道究竟什么是事件以及何时使用它们。另外我想知道组织活动和听众的最佳方式是什么,以及将它们放置在哪里(在哪个文件夹中)。
任何帮助将不胜感激;)
【问题讨论】:
标签: events laravel laravel-4 listeners handlers
我最近实施了一个动作提要,例如创建帖子时,注册新用户或其他任何内容。每个动作都会触发一个事件,并且对于每个事件都有一个监听器,它会保存诸如“用户 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。
【讨论】: