Класс Config (конфигурация)
Класс Config обеспечивает извлечение параметров конфигурации. Эти параметры могут приходить из основного конфигурационного файла (application/config/config.php) или из вашего собственного опционального файла конфигурации.
Примечание: Этот класс инициализируется автоматически, поэтому нет нужды загружать его вручную.
Анатомия конфигурационного файла
По умолчанию CodeIgniter имеет один основной конфигурационный файл, находящийся в application/config/config.php. Если вы откроете этот файл, используя текстовый редактор, вы увидите, что элементы конфигурации находятся в массиве, который называется $config.
Вы можете добавлять собственные элементы конфигурации в этот файл или, если вы предпочитаете хранить вашу конфигурацию отдельно, просто создайте собственный файл и сохраните его в директории config.
Примечание: Если вы создаете собственные конфигурационные файлы, используйте формат первичного конфигурационного файла. Храните ваши элементы в массиве, называемом $config. CodeIgniter будет разумно управлять этими файлами так, чтобы не допускать конфликтов между ними (предполагается, что элементы массива не имеют одинаковых ключей).
Загрузка конфигурационного файла
Примечание: CodeIgniter автоматически загружает первичный конфигурационный файл (application/config/config.php), поэтому вам необходимо загружать только ваши собственные конфигурационные файлы.
Есть два пути для того, чтобы загрузить конфигурационный файл:
- Ручная загрузка
Для того, чтобы загрузить свой собственный конфигурационный файл, используйте следующие инструкции в вашем контроллере:
$this->config->load('filename');
Где filename -это имя вашего конфигурационного файла, но без расширения ".php".
Если вы нуждаетесь в загрузке множества конфигурацинных файлов, они будут слиты в один массив. Могут происходить коллизии имен, если вы используете одинаковые идентификаторы в различных конфигурационных файлах. Для того, чтобы избежать вероятных коллизий, вы можете установить второй параметр в TRUE, и каждый конфигурационный файл будет сохранен в массив, ключи которого будут соответствовать имени этого файла. Пример:
// Сохранено в массив с этим прототипом: $this->config['blog_settings'] = $config
$this->config->load('blog_settings', TRUE);Пожалуйста смотрите раздел Извлечение элементов конфигурации ниже, чтобы узнать, как извлекать элементы конфигурации таким образом.
Третий параметр позволяет вам подавлять ошибки в случае, если конфигурационный файл не существует:
$this->config->load('blog_settings', FALSE, TRUE);
- Автозагрузка
Если вы нуждаетесь в глобальной конфигурации, вы можете сделать так, чтобы он загружался автоматически. Для того, чтобы сделать это, откройте файл autoload.php, находящийся в application/config/autoload.php, и добавьте ваш конфигурационный файл в него.
Извлечение элементов конфигурации
Чтобы получить элемент из вашего конфигурационного файла, используйте следующую функцию:
$this->config->item('item name');
Где item name- это массив $config, который вы хотите получить. Например, для того, чтобы получить ваш язык, сделайте следующее:
$lang = $this->config->item('language');
Функция возвращает FALSE, если попытка получения элемента не удалась.
Если вы используете второй параметр в функции $this->config->load для того, чтобы назначить элементы конфигурации в определенный индекс, вы можете получить их посредством указания имени индекса во втором параметре $this->config->item() функции. Пример:
// Загрузка конфигурационного файла blog_settings.php и ассоциирование с именем "blog_settings"
$this->config->load('blog_settings', TRUE);
// Получение элемента конфигурации с именем site_name, содержащим массив blog_settings
$site_name = $this->config->item('site_name', 'blog_settings');
// Альтернативный способ указать имя элемента:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];
Установка элемента конфигурации
Если вы желаете устанавливать или изменять элементы конфигурации динамически, вы можете сделать это так:
$this->config->set_item('item_name', 'item_value');
Где item_name- это массив $config, индекс которого вы хотите изменить, и item_value- это его значение.
Функции помощника
Класс конфигурации имеет соответствующий помощник:
$this->config->site_url();
Функция, извлекающая URL вашего сайта, в соответствии со значением, указанным в конфигурационном файле.
$this->config->system_url();
Функция, извлекающая URL к вашей системной директории.