【问题标题】:Understand Laravel 5.3 Events了解 Laravel 5.3 事件
【发布时间】:2017-01-26 11:01:31
【问题描述】:

我使用命令 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,我由 artisan 创建的 Event 没有扩展 Event,我的类也使用 InteractsWithSockets,而 laravel 文档中的类没有。为什么会有这种差异,这是什么意思? Laravel 的 5.3 文档是否已经过时并且没有更新以反映最新的变化?

【问题讨论】:

    标签: laravel


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2017-01-26
      • 2017-05-30
      • 2017-04-28
      • 2017-03-11
      • 2017-02-23
      • 2017-06-14
      相关资源
      最近更新 更多