Laravel - 为 WEB 艺术家创造的 PHP 框架。

PHP THAT DOESN'T HURT. CODE HAPPY & ENJOY THE FRESH AIR.

Laravel logo

Laravel 5.0 系列 - 快速生成事件

有时候,创建一个事件和针对这个事件的处理器,或者创建一个命令和针对这个命令的处理器,然后将两者结合起来会耗费相当多的精力,所以我在想能不能做一个工作流,将这些繁琐的工作一步搞定?!

Artisan 中生成命令和事件的指令就是一个很好的开始 -- 生成的过程中都会产生一个实体(事件或命令)以及它们对应的处理器(可选)。但是你仍然需要花上一个小时来写这些指令和处理器,然后再花上15分钟苦思冥想为啥总是报错,最后你终于发现你根本没法将生成的实体和处理器结合到一起,实在是太麻烦啦!。

输入 event:generate #

亲爱的读者们~ 我现在要说的是,你那焦虑的等待终于结束啦!在Laravel 5 中你可以在EventServiceProvider 中绑定事件和处理器,然后运行 php artisan event:generateArtisan 会自动生成事件和处理器相关的文件。

详细步骤,走你~ #

先看一看之前的事件和处理器的目录结构:

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)
    {
    }
}

有没有简单到不行? #

哈哈,就是这么简单!现在你可以随意地设计你的事件系统 -- 你只需要一个简单的命令,就可以得到你想要的事件以及它的处理器。


原文地址:https://mattstauffer.co/blog/laravel-5.0-generating-missing-events

We are clever, But we are clueless