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

Я создаю простое веб-приложение в Laravel 4. У меня есть сервер для управления содержимым приложений. В качестве части бэкэнд я хочу иметь пользовательский интерфейс для управления настройками приложений. Я хочу, чтобы мои конфигурационные переменные сохранялись в файле [FOLDER: /app/config/customconfig.php ].

Мне было интересно, есть ли в Laravel возможность создать пользовательский файл конфигурации, который может управляться / обновляться через внутренний интерфейс?

Заранее благодарю вас!

Related of "Как редактировать и сохранять пользовательские файлы конфигурации в Laravel?"

Вам придется расширять файловый загрузчик, но это очень просто:

class FileLoader extends \Illuminate\Config\FileLoader { public function save($items, $environment, $group, $namespace = null) { $path = $this->getPath($namespace); if (is_null($path)) { return; } $file = (!$environment || ($environment == 'production')) ? "{$path}/{$group}.php" : "{$path}/{$environment}/{$group}.php"; $this->files->put($file, '<?php return ' . var_export($items, true) . ';'); } } 

Применение:

 $l = new FileLoader( new Illuminate\Filesystem\Filesystem(), base_path().'/config' ); $conf = ['mykey' => 'thevalue']; $l->save($conf, '', 'customconfig'); 

Я сделал это так …

 config(['YOURKONFIG.YOURKEY' => 'NEW_VALUE']); $fp = fopen(base_path() .'/config/YOURKONFIG.php' , 'w'); fwrite($fp, '<?php return ' . var_export(config('YOURKONFIG'), true) . ';'); fclose($fp); 

Afiak не имеет встроенных функций для управления конфигурационными файлами. Я вижу два варианта:

  • Вы можете сохранить свою конфигурацию в своей базе данных и переопределить конфигурацию по умолчанию во время выполнения с помощью Config::set('key', 'value'); Но имейте в виду, что

Значения конфигурации, установленные во время выполнения, устанавливаются только для текущего запроса и не переносятся на последующие запросы. @see: http://laravel.com/docs/configuration

  • Поскольку файлы конфигурации – это простые php-массивы, их легко читать, манипулировать и писать . Поэтому с небольшим пользовательским кодом это должно быть сделано быстро.

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