{{TOC}} Laravel имеет множество конфигурационных файлов в **application/config** для настройки всех возможностей, предоставляемых этой средой. Но вам ведь хочется создать собственный файл настроек? Сегодня у вас удачный день, потому что я расскажу вам, как это делается. == Cоздание файлов == Файлы натроек Laravel - обычные скрипты на PHP, хранящиеся в **application/config** или в одной из подпапок. Они возвращают массив значений - например: %% // application/config/ourconfig.php return array( 'size' => 6, 'eat' => true, ); %% Вы можете добавлять комментарии, чтобы сделать их более понятными. Лично мне нравится использовать комментарии в стиле Laravel, к примеру: %% // application/config/ourconfig.php return array( /* |------------------------------ | Размер |------------------------------ | | Это размер той штуковины. | */ 'size' => 6, ); %% Я уверен, что вы можете придумать описание получше! Как вы уже наверняка заметили конфигурационные файлы Laravel - это набор пар %%ключ => значение%%, где ключ массива - имя опции, а значение... собственно, её значение. Опция может иметь значение любого типа PHP, включя объекты и //анонимные функции// ("closure"). Используя последние вы позволяете пользователю легко менять настройки, загружая их по требованию откуда-то из другого источника, например: %% // application/config/ourconfig.php return array( /* |------------------------------ | Size |------------------------------ | | This is the size of my thing. | */ 'size' => function () { $size = file_get_contents('path/to/file.json'); $size = json_decode($size); return $size; }, ); %% Теперь значение опции %%(t)size%% будет читаться из ((ВП:JSON))-файла. .(tl_note) Видимо, автор забыл упомянуть, что "ленивая" загрузка будет работать только если это предусмотрено в коде приложения - обычно с помощью вызова стандартной функции Laravel %%value()%%. == Чтение настроек == Мы можем прочитать значение опции используя метод **get()**: %% $option = Config::get('ourconfig.size'); %% Он принимает строку, где первым идёт имя файла, затем точка (%%(t).%%), а затем имя //опции// для чтения. Если ваш файл находится в подпапке, добавьте их, разделяя точками: %% $option = Config::get('ourconfig.sub.directory.size'); %% Иногда может пригодится получить весь массив настроек разом - для этого просто укажите имя файла без имени опции: %% $option = Config::get('ourconfig'); %% == Установка значений == Для задания определённого значения какой-либо опции используется метод **set()**. //Первый параметр// - обычный путь к файлу и/или опции (как и для %%get()%%), //второй// - её новое значение: %% Config::set('ourconfig.size', 7); %% Заметьте, что если эта опция существует в файле настроек, то она будет перезаписана для текущего запроса - но она не будет изменена в самом файле. То же самое происходит, если опция не существовала до вызова %%set()%% - она будет создана, но файл настроек останется неизменным. Старайтесь выносить как можно больше настроек из вашего приложения в конфигурационные файлы - впоследствии вам будет гораздо проще его поддерживать и распространять.