为什么没在 config/app.php 里注册 App\Providers\BroadcastServiceProvider 也能发送广播?

广播服务提供商
在广播任何事件之前,您首先需要注册 App\Providers\BroadcastServiceProvider。在新的 Laravel 应用程序中,您只需在 config/app.php 配置文件的 providers 数组中取消注释此提供程序。这个 BroadcastServiceProvider 包含注册广播授权路由和回调所需的代码。

广播系统《Laravel 9 中文文档》

我是跟着跟着这个教程做的: devdojo.com/bobbyiliev/how-to-use-... 。这个教程里没注册 BroadcastServiceProvider。是否注册有什么区别吗?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

你只需要搞清楚,\App\Providers\BroadcastServiceProvider (源码) 里面做了什么,就能知道为什么这里不需要。

public function boot()
{
    Broadcast::routes();

    require base_path('routes/channels.php');
}

这里就只是注册了个由内置广播提供的路由,如果你没有用到,当然就可以不添加这个服务提供者。

Laravel

3周前 评论
讨论数量: 3

因为这个:
在新的 Laravel 应用程序中,您只需在 config/app.php 配置文件的 providers 数组中取消注释此提供程序。这个 BroadcastServiceProvider 包含注册广播授权路由和回调所需的代码。

config/app.php中默认143行默认是打开的:

'providers' => [

  /*
 * Laravel Framework Service Providers... */  Illuminate\Auth\AuthServiceProvider::class,
  Illuminate\Broadcasting\BroadcastServiceProvider::class,
...
]
3周前 评论
lddtime 3周前

你只需要搞清楚,\App\Providers\BroadcastServiceProvider (源码) 里面做了什么,就能知道为什么这里不需要。

public function boot()
{
    Broadcast::routes();

    require base_path('routes/channels.php');
}

这里就只是注册了个由内置广播提供的路由,如果你没有用到,当然就可以不添加这个服务提供者。

Laravel

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!