我使用命令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文档是否已经过时并且没有更新以反映最新的变化?
答案 0 :(得分:1)
看来你是对的。看起来文档的这个特定部分没有用5.3版本更新。
为了更完整地回答您的问题,Laravel 5.3不再使用您在5.2文档中引用的abstract Event class。
抽象本身是不必要的,因此它被删除了。
至于您所看到的InteractsWithSockets
特征,它是为了与Websockets更加无缝集成而添加的。如果您的应用程序没有使用Websockets(请参阅:Socket.io),那么您不必利用这些特征,并且可以安全地删除use语句。
任何人都可以编辑文档,因此您可能需要考虑使用文档here发送拉取请求。