Как я могу настроить Lumen для трансляции событий через Pusher?
Документы Lumen утверждают, что "Lumen поддерживает несколько драйверов вещания из коробки: Pusher
, Redis
и log
Драйвер для локальной разработки и отладки. Пример конфигурации включен для каждого из этих драйверов. BROADCAST_DRIVER
Параметр конфигурации может использоваться для установки драйвера по умолчанию."
В моем файле.env я установил BROADCAST_DRIVER=pusher
, Где / как я могу настроить мой идентификатор, ключ и секретный ключ? Я вижу, что в Laravel файл конфигурации для настройки этих параметров находится в config/broadcasting.php
, Где я могу установить эти параметры в Lumen?
Временно я отредактировал Illuminate\Broadcasting\BroadcastManager
и жестко закодировал мои ценности в.
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', []))
);
}
2 ответа
Хорошо, я понял это. По сути, вы должны добавить в конфигурационные файлы самостоятельно.
- Создать
config
каталог в корне вашего приложения. - копия
config/broadcasting.php
из рабочей установки Laravel в этот каталог - Добавьте следующие ключи к вашему
.env
файл:PUSHER_SECRET, PUSHER_KEY, PUSHER_APP_ID
В общем, Lumen поддерживает два режима настройки:
- Установка переменных среды, используемых внутренними конфигурационными файлами Lumen
- Создание файлов конфигурации проекта, которые переопределяют внутреннюю конфигурацию Lumen
Lumen предоставляет переменные конфигурации на основе среды, необходимые для настройки большинства компонентов инфраструктуры, включая Pusher. Хотя это и не ясно из документации, мы также можем настроить Lumen через файлы конфигурации, такие как Laravel. Это позволяет выполнить расширенную настройку, которую Lumen может не поддерживать благодаря встроенной структуре конфигурации.
По умолчанию новые проекты Lumen не предоставляют файлы конфигурации, как это делают новые проекты Laravel в каталоге config/. Как обнаружил @Feek, мы можем создать каталог config/ и добавить любые необходимые файлы конфигурации. Например, мы можем создать файл config/broadcasting.php для настройки широковещательных соединений.
При создании файла конфигурации в проекте, подобном этому, Lumen автоматически считывает значения конфигурации из файла, если он совпадает с именем одного из встроенных файлов конфигурации Lumen. Если мы хотим добавить пользовательский файл конфигурации, который не совпадает с одним из внутренних имен файлов конфигурации Lumen, нам нужно вручную указать Lumen прочитать файл конфигурации в поставщике услуг или в bootstrap / app.php.
Например, чтобы загрузить значения конфигурации из config/ my-custom-config.php, добавьте эту строку в процесс загрузки приложения:
$app->configure('my-custom-config');
В конкретном случае этого вопроса встроенный в Lumen конфигурационный файл broadcasting.php считывает переменные среды Pusher для нас, поэтому нам не нужно создавать конфигурационный файл в проекте для них. Просто установите BROADCAST_DRIVER
, PUSHER_SECRET
, PUSHER_KEY
, а также PUSHER_APP_ID
в .env.