了解Laravel 5.3事件

时间:2016-09-18 19:10:02

标签: laravel

我使用命令php artisan event创建事件:make EventTest并生成此类:

class EventTest
{
    use InteractsWithSockets, SerializesModels;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('channel-name');
    }
}

Laravel 5.3事件的官方文档看起来不同https://laravel.com/docs/5.3/events#defining-events,它作为示例使用的事件如下所示:

class OrderShipped extends Event
{
    use SerializesModels;

    public $order;

    /**
     * Create a new event instance.
     *
     * @param  Order  $order
     * @return void
     */
    public function __construct(Order $order)
    {
        $this->order = $order;
    }
}

正如你所看到它扩展了Event,我的art由artisan创建的事件不会扩展Event,我的类也使用InteractsWithSockets而laravel文档中的类没有。为什么会出现这种差异,这是什么意思? Laravel的5.3文档是否已经过时并且没有更新以反映最新的变化?

1 个答案:

答案 0 :(得分:1)

看来你是对的。看起来文档的这个特定部分没有用5.3版本更新。

为了更完整地回答您的问题,Laravel 5.3不再使用您在5.2文档中引用的abstract Event class

抽象本身是不必要的,因此它被删除了。

至于您所看到的InteractsWithSockets特征,它是为了与Websockets更加无缝集成而添加的。如果您的应用程序没有使用Websockets(请参阅:Socket.io),那么您不必利用这些特征,并且可以安全地删除use语句。

任何人都可以编辑文档,因此您可能需要考虑使用文档here发送拉取请求。