Laravel事件处理程序&听众

时间:2014-06-30 22:08:42

标签: events laravel laravel-4 listeners handlers

我对Laravel的事件处理程序和监听器有疑问。我不知道从哪里开始。

我想知道什么是事件以及何时使用它们。此外,我想知道组织事件和听众的最佳方式是什么,以及放置它们的位置(在哪个文件夹中)。

任何帮助将不胜感激;)

1 个答案:

答案 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