Events Laravel事件处理程序&;听众

Events Laravel事件处理程序&;听众,events,laravel,laravel-4,listeners,handlers,Events,Laravel,Laravel 4,Listeners,Handlers,我对Laravel的事件处理程序和侦听器有一个问题。我不知道从哪里开始 我想知道什么是事件以及何时使用它们。此外,我还想知道组织活动和听众的最佳方式是什么,以及将它们放在何处(在哪个文件夹中) 任何帮助都将不胜感激;) 我最近实现了一个操作提要,例如,当创建帖子时,注册新用户,或者其他什么。每个操作都会触发一个事件,每个事件都有一个侦听器,它会在数据库中保存“User XY just registered!”之类的内容 非常基本的版本: // app/controllers/Registrati

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

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


任何帮助都将不胜感激;)

我最近实现了一个操作提要,例如,当创建帖子时,注册新用户,或者其他什么。每个操作都会触发一个事件,每个事件都有一个侦听器,它会在数据库中保存“User XY just registered!”之类的内容

非常基本的版本:

// 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中



但是如果你要有很多事件,你不应该把所有的事件放在一个文件中。请参阅。

谢谢!这正是我所需要的:)这使得测试我的控制器更加容易。嗨@Melvin Koopmans,我想在用户登录时触发一个事件。我使用的是Laravel5内置的auth。我应该在哪里触发事件?您可以在控制器中触发事件。当您点击特定的控制器方法时,您可以定义事件触发。然后,laravel会自动为您触发事件。