В многопользовательской среде
Вы можете объединить настройки в общую конфигурацию в промежуточном программном обеспечении или в точке, в которой вы знаете, на каком сайте вы находитесь:
config('common');
config('brg.settings'); // inside each have the same keys
config('ssc.settings'); // inside each have the same keys
Допустим, вы хотите common.settings
, где settings
происходит от brg.settings
или scc.settings
, вы можете попробовать что-то вроде следующего:
config([
'common' => array_merge(
config('brg'),
config('common')
)
]);
Если вы хотите изменить его так, чтобы brg.settings
стали ключами в общем, попробуйте следующее:
config([
'common' => array_merge(
config('brg.settings'),
config('common')
)
]);
Обновление - для подхода к общей (скопированной) папке
Допустим, ваша папка конфигурации имеет:
config/common.php
config/brg/settings.php
Тогда вы можете попытаться создать символическую ссылку от config/brg/settings.php
до config/settings.php
$ cd config
$ ln -s brg/settings.php settings.php
Возможно, вы даже захотите переместить brg/settings.php
из папки конфигурации во что-то вроде sites/brg/settings/php
, чтобы избежать сложного построения компоновки всех конфигураций сайтов и просто использовать символическую ссылку в конфигурации с тем, что вы хотите.
С другой стороны
В рамках вашего развертывания вы можете создать кустарную команду, которая создаст нужный вам физический конфигурационный файл, config/site/settings.php
с учетом сайта внутри .env.
Я думаю, что все еще хорошо перемещать конфигурацию, специфичную для сайта, из папки конфигурации, чтобы Laravel не нужно было анализировать ненужные файлы.