Laravel 4 отдельных файла конфигурации для пакетов

В моем проекте laravel 4 настроено несколько сред.

Настройка среды: разработка называется «разработка», а производство называется «производство».
В моей папке app / config у меня есть две дополнительные папки. По одному на каждое название среды.

Смотрите скриншот:

введите описание изображения здесь

Внутри этих папок у меня есть отдельные файлы конфигурации для database.php и app.php.
Они работают, как ожидалось. Laravel использует мою локальную конфигурацию базы данных при локальном запуске и производственную при запуске в реальном времени.

Теперь я добавил новый пакет, который требует файл конфигурации. Это проживает в /app/config/packages/greggilbert/config.php,

Мне нужно иметь возможность устанавливать разные конфигурационные файлы так же, как я делаю для базы данных. Итак, я предполагал создать такую ​​же файловую структуру в /development или же /production будет работать, но это не так.

Вот новый скриншот:

введите описание изображения здесь

0

Решение

Связанные с пакетом, специфичные для среды файлы конфигурации должны быть помещены в каталог пакета в подкаталоге, названном в честь среды. Так что в вашем случае это будет

app
- config
- packages
- greggilbert
- recaptcha
- development
- config.php
- production
- config.php

Но в некоторых случаях это может стать очень уродливым и обременительным. Это может быть решено более (на мой взгляд) чище и более элегантно файлы среды в корневом каталоге вашего приложения:

/.env.development.php

<?php
return [

// any configuration settings for your local environment

'RECAPTCHA_TEMPLATE' => 'customCaptcha',
'RECAPTCHA_LANGUAGE' => 'en',

];

Таким образом, вы можете оставить каталог пакета как он есть:

app
- config
- packages
- greggilbert
- recaptcha
- config.php

Laravel загрузит файл среды в соответствии со средой и сделает переменные среды глобально доступными через getenv(), Так что теперь вы можете просто взять указанный шаблон для текущей среды с getenv('RECAPTCHA_TEMPLATE') из config.php.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector