Класс конфига
Класс конфига предоставляет средства для извлечения настроек конфигурации. Эти настройки могут находиться в конфигурационном файле по умолчанию (application/config/config.php) или из собственных пользовательских конфигурационных файлов.
Примечание
Этот класс инициализируется системой автоматически, поэтому нет необходимости делать это вручную.
Работа с классом конфигурации
Анатомия конфигурационного файла
По умолчанию, CodeIgniter имеет один основной конфигурационный файл расположенный в application/config/config.php. Если вы открываете файл с помощью текстового редактора, то увидите что элементы конфига хранятся в массиве с названием $config.
Вы можете добавить свои собственные элементы конфигурации в этот файл или если вы предпочитаете сохранить ваши элементы конфигурации отдельно (предполагая, что вам нужен конфиг элементов), просто создайте свой собственный файл и сохраните его в папку config.
Примечание
Если вы создаете свои собственные конфигурационные файлы используя тот же Формат что и основной файл, записывая элементы в массив $config. CodeIgniter будет грамотно управлять этими файлами так что не будет никаких конфликтов, хотя имя массива одно (предполагая, что индексы массива не совпадают).
Загрузка конфигурационного файла
Примечание
CodeIgniter автоматически загружает основной файл конфигурации (application/config/config.php), поэтому вам нужно будет загрузить только созданный вами config.
Есть два способа загрузки конфигурационного файла:
Ручная загрузка
Для загрузки одного из ваших пользовательских конфигурационных файлов, используйте следующие функции в пределахконтроллера который нуждается в них:
$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');
Функция возвращает NULL если элемент, который вы пытаетесь извлечь не существует.
Если используется второй параметр функции $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 - значение.
Среды
Вы можете загружать различные файлы конфигурации в зависимости от текущей среды. Константа ENVIRONMENT определяется вindex.php и это подробно описано в Обработка Сред разделе.
Для создания конфигурационного файла для конкретной среды, создайте или скопируйте файл конфигурации в application/config/{ENVIRONMENT}/{FILENAME}.php
Например, для создания config.php производства следует:
- Создайте каталог application/config/production/
- Скопируйте существующий config.php в каталог указанный выше
- Отредактируйте application/config/production/config.php где содержутся параметры вашего производства
При установке ENVIRONMENT постоянной в ‘production (производство)’, настройки нового config.php производства будут загружены.
Вы можете разместить следующие файлы конфигурации в папке конкретной среды:
- Конфигурационные файлы CodeIgniter по умолчанию
- Свои собственные файлы конфигурации
Примечание
CodeIgniter сначала всегда загружает глобальный конфигурационный файл (т.е. расположенный в application/config/), затем пытается загрузить файлы конфигурации для текущей среды. Это означает, что Вы не обязаны размещать все ваши файлы конфигурации в папке среды. Только файлы, для окружающей среде. Кроме того, вы не должны копировать все конфиг файлы элементов среды. Только конфигурационные элементы, которые вы хотите изменить для среды. Элементы конфига, объявленные в папке среды всегда перезаписывают глобальные конфигурационные файлы.
Настройки класса
- class CI_Config
- $config
Массив всех загруженных значений конфигурации
- $is_loaded
Массив всех загруженных файлов конфигурации
- item($item[, $index=''])
Параметры: - $item (строка) – Имя элемента конфига
- $index (строка) – Имя индеса
Возвращает: Значение элемента конфига или NULL если не найден
Возвращаемый тип: смешанный
Извлекает элемент конфигурационного файла.
- set_item($item, $value)
Параметры: - $item (строка) – Имя элемента конфига
- $value (строка) – Значение элемента конфига
Возвращаемый тип: пустота
Задает элемент файла конфигурации в указанное значение.
- slash_item($item)
Параметры: - $item (строка) – Имя элемента конфига
Возвращает: Значение элемента конфиг с замыкающей косой чертой или NULL если не найден
Возвращаемый тип: смешанный
Этот метод идентичен item(), за исключением того что добавляет косую черту в конец элемента, если тот существует.
- load([$file = ''[, $use_sections = FALSE[, $fail_gracefully = FALSE]]])
Параметры: - $file (строка) – Имя конфигурационного файла
- $use_sections (булево) – Значения конфига должны быть загружены в их собственном разделе (индекс основного массива конфига)
- $fail_gracefully (булево) – Нужно ли возвращать false или сообщение об ошибке
Возвращает: TRUE при успехе FALSE если нет
Возвращаемый тип: булево
Загружает файл конфигурации.
- site_url()
Возвращает: URL сайта Возвращаемый тип: строка Этот метод извлекает URL на ваш сайт, наряду со значением “index” указанным в конфигурационном файле.
Этот метод, как правило доступен через соответствующие функции в Хелпере URL.
- base_url()
Возвращает: Базовый URL Возвращаемый тип: строка Этот метод извлекает URL на ваш сайт плюс дополнительный путь к таблице стилей или изображения.
Этот метод, как правило доступен через соответствующие функции в Хелпере URL.
- system_url()
Возвращает: URL указывающий на свою CI system/ папку Возвращаемый тип: строка Этот метод извлекает URL к вашей CodeIgniter system/ папке.
Примечание
Этот метод является УСТАРЕВШИМ так как он поощряет использование небезопасной практики кодирования. Ваша system/ папка не должна быть общедоступной.