Конфигурация

Введение

Основные параметры конфигурации установки сохраняются в следующих местах:

Тип Расположение файлов
Global includes/OSC/Conf/global.php
Per-Site includes/OSC/Sites/SITE/site_conf.php

global конфигурационный файл и все конфигурационные файлы сайта, автоматически загружаются в свои собственные группы, когда структура инициализируется. Файл глобальной конфигурации загружается в 'global' группу, а также файлы конфигурации site загружаются в свои собственные Группу сайтов (например, «Admin» и «Shop»).

Чтение значения конфигурации сначала пытается найти на уровне site, и если конфигурация ключа не существует, возвращается глобальное значение. Конфигурационный параметр уровня site имеет приоритет над параметром глобального уровня, если конфигурации глобального уровня также определен параметр.

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

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

Тип Место расположения
Global includes/OSC/Custom/Conf/global.php
Per-Site includes/OSC/Custom/Sites/SITE/site_conf.php

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

Формат параметров конфигурации хранятся в формате "ini" стиля в PHP файла, который присваивается переменной $ini PHP. Этот стиль конфигурации был выбран как простой текстовый файл .ini, чтобы предотвратить считывание параметров конфигурации в случаях, если конфигурационные файлы является доступными через веб-сервер.

Пример формата для глобального конфигурационного файла:


$ini = <<
db_server = "localhost"

db_server_username = "dbuser"

db_server_password = "dbpass"

db_database = "oscommerce"

db_table_prefix = "osc_"

store_sessions = "MySQL"

time_zone = "Europe/Berlin"

EOD;

Пример файла конфигурации сайта является:


$ini = <<
dir_root = "/www/html/"

http_server = "https://demo.oscommerce.shop"

http_path = "/"

http_images_path = "images/"

http_cookie_domain = ".oscommerce.shop"

http_cookie_path = "/"

EOD;

Внешние файлы конфигурации

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

use OSC\OM\OSCOM;

OSCOM:: loadConfigFile($path_of_file, 'ext_group' );

Это позволит загрузить параметры конфигурации $path_of_file to the 'ext_group' конфигурации группы.

Важно, что ini формат хранится в виде строки в переменной $ini PHP иначе параметры конфигурации не могут быть разобраны.

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

Параметры конфигурации можно получить с помощью OSCOM::getConfig():

use OSC\OM\OSCOM;

$value = OSCOM:: getConfig('cfg_name' );

В этом примере параметр конфигурации cfg_name из группы текущего сайта, возвращается. Если текущая группа сайта не содержит параметров конфигурации, глобальное значение группы возвращается. Можно определить, к группе какой конфигурации, параметр должн быть загружен, определив имя группы:

use OSC\OM\OSCOM;

$value = OSCOM:: getConfig('cfg_name' , 'ext_group' );

Это позволит загрузить конфигурационный параметр cfg_name из группы ext_group.
Далее можно использовать, чтобы сначала увидеть, если конфигурационный параметр существует:

use OSC\OM\OSCOM;

if (OSCOM:: configExists('cfg_name' )) {

....

}

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

use OSC\OM\OSCOM;

if (OSCOM:: configExists('cfg_name' , 'ext_group' )) {

....

}

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

Настройка параметров конфигурации

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

use OSC\OM\OSCOM;

$value = true;

OSCOM:: setConfig('is_true' , $value, 'ext_group' );

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

Предыдущая статья:

База данных о osCommerce v2.4

Следующая статья:

Структура osCommerce v2.4