CodeIgniter User Guide Version 2.0.0


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

Класс 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. Автозагрузка

    Если вы нуждаетесь в глобальной конфигурации, вы можете сделать так, чтобы он загружался автоматически. Для того, чтобы сделать это, откройте файл 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 к вашей системной директории.