Может войдёшь?
Черновики Написать статью Профиль

Конфигурационные файлы Laravel

перевод

  1. 1. Cоздание файлов
  2. 2. Чтение настроек
  3. 3. Установка значений

Laravel имеет множество конфигурационных файлов в application/config для настройки всех возможностей, предоставляемых этой средой. Но вам ведь хочется создать собственный файл настроек? Сегодня у вас удачный день, потому что я расскажу вам, как это делается.

Cоздание файлов

Файлы натроек Laravel — обычные скрипты на PHP, хранящиеся в application/config или в одной из подпапок. Они возвращают массив значений — например:

PHP
// application/config/ourconfig.php

return array(
  
'size' => 6,
  
'eat' => true,
);

Вы можете добавлять комментарии, чтобы сделать их более понятными. Лично мне нравится использовать комментарии в стиле Laravel, к примеру:

PHP
// application/config/ourconfig.php

return array(
  
/*
  |------------------------------
  | Размер
  |------------------------------
  |
  | Это размер той штуковины.
  |
  */

  
'size' => 6,
);

Я уверен, что вы можете придумать описание получше! Как вы уже наверняка заметили конфигурационные файлы Laravel — это набор пар PHPключ => значение, где ключ массива — имя опции, а значение… собственно, её значение.

Опция может иметь значение любого типа PHP, включя объекты и анонимные функции («closure»). Используя последние вы позволяете пользователю легко менять настройки, загружая их по требованию откуда-то из другого источника, например:

PHP
// 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;
  },
);

Теперь значение опции size будет читаться из JSON-файла.

Видимо, автор забыл упомянуть, что «ленивая» загрузка будет работать только если это предусмотрено в коде приложения — обычно с помощью вызова стандартной функции Laravel PHPvalue().

Чтение настроек

Мы можем прочитать значение опции используя метод get():

PHP
$option Config::get('ourconfig.size');

Он принимает строку, где первым идёт имя файла, затем точка (.), а затем имя опции для чтения. Если ваш файл находится в подпапке, добавьте их, разделяя точками:

PHP
$option Config::get('ourconfig.sub.directory.size');

Иногда может пригодится получить весь массив настроек разом — для этого просто укажите имя файла без имени опции:

PHP
$option Config::get('ourconfig');

Установка значений

Для задания определённого значения какой-либо опции используется метод set(). Первый параметр — обычный путь к файлу и/или опции (как и для PHPget()), второй — её новое значение:

PHP
Config::set('ourconfig.size'7);

Заметьте, что если эта опция существует в файле настроек, то она будет перезаписана для текущего запроса — но она не будет изменена в самом файле. То же самое происходит, если опция не существовала до вызова PHPset() — она будет создана, но файл настроек останется неизменным.

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

Как вы считаете, полезен ли этот материал? Да Нет

Комментарии (1)

clgs

(delete)

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.