Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.3

Search User Guide

# Класс конфигурации (Config)

Класс конфигурации предоставляет средства для получения параметров конфигурации. Эти настройки могут быть прочитаны из конфигурационного файла по умолчанию (`application/config/config.php`) или из вашего собственного конфигурационного файла.

Примечание: Этот класс автоматически инициализируется системой, поэтому нет нужны загружать его вручную.

## Анатомия конфигурационного файла

По умолчанию CodeIgniter имеет один первичный конфигурационный файл, который находится в `application/config/config.php`. Если вы откроете этот файл в текстовом редакторе, вы увидите элементы конфигурации, которые хранятся в массиве $config.

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

Примечание: Если вы создаете ваши собственные конфигурационные файлы, используйте тот-же формат, что и у первичного, храните ваши элементы в массиве $config. CodeIgniter будет интеллигентно управлять этими файлами, так, чтобы не допускать конфликтов (предполагая, что индексы массивов не называются также, как и другие).

## Загрузка конфигурационного файла

Примечание: CodeIgniter автоматически загружает первичный конфигурационный файл (`application/config/config.php`), поэтому имеет смысл загружать вручную только ваши собственные файлы.

Есть два способа загрузить файл конфигурации:

1. Ручная загрузка

   Чтобы загрузить один из ваших собственный файлов с конфигурациями, используйте следующую функцию в ваших контроллерах:

   `$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`);`
2. Автозагрузка

   Если вы обнаружите, что конкретный конфигурационный файл используется глобально, вы можете сделать так, чтобы он автоматически загружался системой. Чтобы сделать это, откройте файл `application/config/autoload.php`, и добавьте название вашего конфигурационного файла, как показано там.

## Получение элементов конфигурации

Чтобы получить элемент из вашего конфигурационного файла, используйте следующую функцию:

`$this->config->item('item name');`

Где item name это ключ элемента массива $config, который вы хотите получить. Например, чтобы получить ваш язык, сделайте так:

`$lang = $this->config->item('language');`

Функция вернет FALSE, если элемент не существует.

Вы можете использовать второй параметр функции `$this->config->load`, чтобы ассоциировать элементы конфигурации с определенным индексом. Пример:

`// Загружает конфигурационный файл 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 это его значение.

## Окружения

Вы можете загружать различные конфигурационные файлы в зависимости от текущего окружения. Константа `ENVIRONMENT` определяется в index.php, и детально описана в разделе Работа с окружениями.

Чтобы создать конфигурационный файл, зависимый от окружения, создайте его копию в application/config/{ENVIRONMENT}/{FILENAME}.php

Например, чтобы создать config.php для эксплуатации (production), сделайте следующее:

1. Создайте директорию application/config/production/
2. Скопируйте ваш существующий config.php в эту директорию
3. Отредактируйте application/config/production/config.php так, чтобы он содержал ваши эксплуатационные настройки

Когда вы установите константу `ENVIRONMENT` в 'production', будут загружаться настройки из config.php для режима эксплуатации.

Вы можете поместить соответствующие конфигурационные файлы в директории, соответствующие окружениям:

- Конфигурационные файлы CodeIgniter по умолчанию
- Ваши собственные конфигурационные файлы

Примечание: CodeIgniter постоянно пытается загрузить конфигурационные файлы сперва для текущего окружения. Если файл не существует, используется глобальный файл (то есть один из `application/config/`). Это означает, что вы не обязаны размещать все ваши конфигурационные файлы в директории окружения - только те файлы, которые изменяются в зависимости от окружения.

## Функции-помощники

Конфигурационный класс имеет следующие функции-помощники:

## $this->config->site_url();

Эта функция получает URL вашего сайта, в соответствии со значением "index", который вы указали в конфигурационном файле.

## $this->config->base_url();

Эта функция получает URL к вашему сайту, плюс опциональный путь, например к таблице стилей или изображению.

Две функции, описанные выше, обычно доступны через соответствующие функции в помощнике URL.

## $this->config->system_url();

Функция получает URL вашей системной директории.

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter