CodeIgniter, руководство пользователя к версии 1.6.1


Класс Config

Класс Config представляет доступ к конфигурационным данным. Они расположены в стандартном конфигурационном файле (application/config/config.php) или в Ваших собственных файлах-конфигурациях.

Важно: Этот класс инициализируется автоматически. Нет необходимости загружать его вручную.

Структура конфигурационного файла

Изначально CodeIgniter имеет один конфигурационный файл, размещенный в application/config/config.php. Если открыть этот файл, то можно заметить, что все конфигурационные данные входят в массив $config.

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

Примечание: Если Вы создали собственный файл с данными, желательно сохранить значения в массиве $config. CodeIgniter будет взаимодействовать с конф. файлами без проблем, даже если массивы имеют одно имя. Разумеется, имена индексов массивов должны различаться.

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

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

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

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

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

    $this->config->load('filename');

    Где filename - имя Вашего конфигурационного файла без расширения .php.

    Если нужно загрузить несколько конф. файлов с одинаковыми массивами, то следует все массивы каждого конф. файла объединить в один. Для этого следует установить второй параметр функции в значение TRUE , и весь конфигурационный файл будет представлен мультимассивом, название которого будет соответствовать названию файла. Например:

    $this->config->load('blog_settings', TRUE);

    Подробное описание этого способа в подразделе Получение конфигурационных данных

    Третий параметр позволяет обрабатывать ошибки, если конф. файл не найден :

    $this->config->load('blog_settings', FALSE, TRUE);
  2. Автоматическая загрузка

    Если нужно создать глобальный доступ к конфигурационному файлу, следует записать его в автозагрузку. Для этого откройте файл autoload.php , размещенный по адресу application/config/autoload.php, и добавьте имя файла (без .php) в массив автозагрузки под индексом 'config'.

Получение конфигурационных данных

Для получения значения из конф. файл используется следующая функция :

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

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

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

Функция возвращает 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 - новое значение этого индекса .

Вспомогательные функции

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

$this->config->site_url();

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

$this->config->system_url();

Эта функция возвращает URL к папке system.