有时候,创建一个事件和针对这个事件的处理器,或者创建一个命令和针对这个命令的处理器,然后将两者结合起来会耗费相当多的精力,所以我在想能不能做一个工作流,将这些繁琐的工作一步搞定?!
Artisan 中生成命令和事件的指令就是一个很好的开始 -- 生成的过程中都会产生一个实体(事件或命令)以及它们对应的处理器(可选)。但是你仍然需要花上一个小时来写这些指令和处理器,然后再花上15分钟苦思冥想为啥总是报错,最后你终于发现你根本没法将生成的实体和处理器结合到一起,实在是太麻烦啦!。
输入 event:generate #
亲爱的读者们~ 我现在要说的是,你那焦虑的等待终于结束啦!在Laravel 5 中你可以在EventServiceProvider 中绑定事件和处理器,然后运行 php artisan event:generate ,Artisan 会自动生成事件和处理器相关的文件。
详细步骤,走你~ #
先看一看之前的事件和处理器的目录结构:app/
Events/
Event.php
Handlers/
Events/
1) 打开 app/providers/EventServiceProvider.php. 找到 $listen 属性, 这里是通常绑定事件的地方,按照下面的格式添加一个事件:protected $listen = [
DidSomethingEvent::class => [
RespondOneWay::class,
RespondAnotherWay::class
]
];
2) 运行 php artisan event:generate
3) 完成。
下面看一看文件目录中多出来的文件.app/
Events/
Event.php
DidSomethingEvent.php
Handlers/
Events/
RespondOneWay.php
RespondAnotherWay.php
创建,绑定,运行~ 一切搞定!<?php namespace App\Handlers\Events;
...
class RespondOneWay {
...
public function handle(DidSomethingEvent $event)
{
}
}
有没有简单到不行? #
哈哈,就是这么简单!现在你可以随意地设计你的事件系统 -- 你只需要一个简单的命令,就可以得到你想要的事件以及它的处理器。
本文介绍如何使用Laravel5内置的功能简化事件及处理器的创建过程。通过EventServiceProvider绑定事件与处理器,并利用Artisan命令event:generate,可以快速生成事件及处理器的相关文件。

828

被折叠的 条评论
为什么被折叠?



