Spec-Zone.ru › CodeIgniter 3

Класс Config

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

Примечание

Этот класс инициализируется системой автоматически, поэтому нет необходимости делать это вручную.

  • Работа с классом Config
    • Структура файла конфигурации
    • Загрузка файла конфигурации
      • Ручная загрузка
      • Автоматическая загрузка
    • Получение элементов конфигурации
    • Установка элемента конфигурации
    • Среды
  • Справочник класса

Работа с классом Config

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

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

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

Примечание

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

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

Примечание

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

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

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

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

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

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

Если вам нужно загрузить несколько файлов конфигурации, они обычно будут объединены в один массив master config. Однако могут возникнуть коллизии имен, если у вас есть идентичные индексы массива в разных файлах конфигурации. Чтобы избежать коллизий, вы можете установить второй параметр в TRUE, и каждый файл конфигурации будет сохранен в индексе массива, соответствующем имени файла конфигурации. Пример:

// Stored in an array with this prototype: $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(). Пример:

// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
$this->config->load('blog_settings', TRUE);

// Retrieve a config item named site_name contained within the blog_settings array
$site_name = $this->config->item('site_name', 'blog_settings');

// An alternate way to specify the same item:
$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 так, чтобы он содержал ваши настройки для среды production

Когда вы установите константу ENVIRONMENT в ‘production’, будут загружены настройки из нового файла config.php, специфичного для среды production.

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

  • Файлы конфигурации CodeIgniter по умолчанию
  • Свои собственные пользовательские файлы конфигурации

Примечание

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

Справочник класса

class CI_Config
$config

Массив всех загруженных значений конфигурации

$is_loaded

Массив всех загруженных файлов конфигурации

item($item[, $index=''])
Параметры:
  • $item (string) – Имя элемента конфигурации
  • $index (string) – Имя индекса
Возвращает:

Значение элемента конфигурации или NULL, если не найдено

Тип возвращаемого значения:

смешанный

Получение значения элемента конфигурации.

set_item($item, $value)
Параметры:
  • $item (string) – Имя элемента конфигурации
  • $value (string) – Значение элемента конфигурации
Тип возвращаемого значения:

void

Устанавливает значение элемента конфигурации.

slash_item($item)
Параметры:
  • $item (string) – Имя элемента конфигурации
Возвращает:

Значение элемента конфигурации с конечным слешем или NULL, если не найдено

Тип возвращаемого значения:

смешанный

Этот метод идентичен item(), за исключением того, что он добавляет конечный слеш к имени элемента, если он существует.

load([$file = ''[, $use_sections = FALSE[, $fail_gracefully = FALSE]]])
Параметры:
  • $file (string) – Имя файла конфигурации
  • $use_sections (bool) – Нужно ли загружать значения конфигурации в отдельные секции (индекс основного массива конфигурации)
  • $fail_gracefully (bool) – Возвращать FALSE или выводить сообщение об ошибке
Возвращает:

TRUE при успехе, FALSE при неудаче

Тип возвращаемого значения:

bool

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

site_url()
Возвращает: URL сайта
Тип возвращаемого значения: string

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

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

base_url()
Возвращает: Базовый URL
Тип возвращаемого значения: string

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

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

system_url()
Возвращает: URL, указывающий на ваш каталог CI system/
Тип возвращаемого значения: string

Этот метод извлекает URL вашего каталога CodeIgniter system/.

Примечание

Этот метод устарел, так как он поощряет использование небезопасных кодировочных практик. Ваш каталог system/ не должен быть доступен для публичного доступа.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/config.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API