Lumen的文档指出,"Lumen支持开箱即用的几个广播驱动程序:Pusher
、Redis
和用于本地开发和调试的log
驱动程序。这些驱动程序中的每一个都包含一个配置示例。BROADCAST_DRIVER
配置选项可用于设置默认驱动程序。"
在我的.env文件中,我设置了BROADCAST_DRIVER=pusher
。我可以在哪里/如何配置我的推送员ID、密钥和机密?我看到在Laravel中,用于设置这些选项的配置文件位于config/broadcasting.php
中在Lumen中,我可以在哪里设置这些选项
我暂时编辑了IlluminateBroadcastingBroadcastManager
,并在.中硬编码了我的值
protected function createPusherDriver(array $config)
{
// override
$app_id = 'hidden';
$key = 'hidden';
$secret = 'hidden';
return new PusherBroadcaster(
new Pusher($key, $secret, $app_id, Arr::get($config, 'options', []))
);
}
好吧,我想明白了。本质上,您必须自己添加配置文件。
- 在应用程序的根目录中创建一个
config
目录 - 将正在运行的laravel安装中的
config/broadcasting.php
复制到此目录中 - 将以下密钥添加到
.env
文件中:PUSHER_SECRET, PUSHER_KEY, PUSHER_APP_ID
通常,Lumen支持两种配置模式:
- 设置Lumen内部配置文件使用的环境变量
- 创建覆盖Lumen内部配置的项目配置文件
Lumen提供了配置框架的大部分组件所需的基于环境的配置变量,包括Pusher。虽然从文档中看不清楚,但我们也可以通过Laravel等配置文件来配置Lumen。这使得Lumen可能无法通过其内置配置结构支持高级配置。
默认情况下,新的Lumen项目不会像新的Laravel项目在config/目录中那样提供配置文件。正如@Feek所发现的,我们可以创建config/目录并添加任何需要的配置文件。例如,我们可以创建config/broacasting.php文件来设置广播连接。
在这样的项目中创建配置文件时,如果文件与Lumen内置配置文件的名称匹配,Lumen将自动从文件中读取配置值。如果我们想添加一个与Lumen内部配置文件名不匹配的自定义配置文件,我们需要手动指示Lumen在服务提供商或bootstrap/app.php中读取配置文件。
例如,要从config/my-custom-config.php加载配置值,请将此行添加到应用程序的引导过程中:
$app->configure('my-custom-config');
在这个问题的特殊情况下,Lumen内置的broadcasting.php配置文件为我们读取Pusher环境变量,因此我们不需要在项目中为这些变量创建配置文件。只需在.env.
BROADCAST_DRIVER
、PUSHER_SECRET
、PUSHER_KEY
和PUSHER_APP_ID