-
Notifications
You must be signed in to change notification settings - Fork 93
Основная информация
Настройки могут задаваться в файле .settings.php
и .settings_extra.php
. Базовый файл настроек содержит неизменные настройки,
к которым есть API. Файл .settings_extra.php
может содержать произвольный код, который меняет настройки динамически.
Соответственно к нему нет API.
Пример:
/*Отвечает за кодировку*/
'utf_mode' =>
array (
'value' => true,
'readonly' => true,
),
-
readonly
- ключ означает, что нельзя изменить значение через API. -
value
-true
, если используетсяutf
иfalse
в обратном случае
/*Отвечает за кодировку*/
'utf_mode' =>
array (
'value' => false,
'readonly' => true,
),
-
value
-false
, то есть не используется UTF-8
/*Отвечает за кодировку по умолчанию*/
'default_charset' =>
array (
'value' => 'cp866',
'readonly' => false,
),
-
value
- указание кодировки по умолчанию
Пример:
/*Отвечает за кэширование*/
'cache' =>
array (
'value' =>
array (
'type' => 'memcache', /*memcache, apc, xcache, files, none*/
'sid' => '',
'memcache' =>
array (
'host' => '127.0.0.1',
),
),
'readonly' => false,
),
Так же доступных специальные флаги для кэширования опций модулей:
/*Время кэширования в секундах*/
'cache_flags' =>
array (
'value' =>
array (
'config_options' => 3600,
'site_domain' => 3600,
),
'readonly' => false,
),
-
readonly
- ключ означает, что нельзя изменить значение через API -
site_domain
- время кэширования куки в секундах -
config_options
- время кэширования опций модулей в секундах
Пример:
'exception_handling' => array (
'value' => array (
'debug' => false,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
-
readonly
ключ означает, что нельзя изменить значение через API -
debug
- ключ отвечает за то, будет ли выведена ошибка на страницу в браузере -
handled_errors_types
- Tипы ошибок, которые система отлавливает -
exception_errors_types
- типы ошибок, при которых система выбрасывает исключение -
ignore_silence
- ключ отменяет действие оператора управления ошибками (@) -
log
- в ключе задаются параметры логирования ошибок. -
assertion_throws_exception
- включить поддержку assert -
assertion_error_type
- какие типы ошибок обрабатывать для assert
Если в корне сайта лежит файл error.php
и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения.
Пример:
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
-
readonly
ключ означает, что нельзя изменить значение через API -
file
- путь к файлу лога относительно корневой папки сайта -
log_size
- максимальный размер файла лога в байтах
Пример:
'log' => array(
'class_name' => 'MyLog',
'extension' => 'MyLogExt',
'required_file' => 'modules/mylog.module/mylog.php'
'settings' => array(
),
),
-
class_name
- имя класса (с указанием namespace) -
extension
- PHP расширение, необходимое для исползования -
required_file
- файл, который необходим для использования (например автозагрузка) -
settings
- массив настроек
Пример использования своего собственного логера (в качестве примера взят monolog-adapter):
return array(
'exception_handling' => array(
'value' => array(
'log' => array(
'class_name' => '\Bex\Monolog\ExceptionHandlerLog',
'settings' => array(
'logger' => 'app'
),
),
),
'readonly' => false
),
'monolog' => array(
'value' => array(
'handlers' => array(
'default' => array(
'class' => '\Monolog\Handler\StreamHandler',
'level' => 'DEBUG',
'stream' => '/path/to/logs/app.log'
),
'feedback_event_log' => array(
'class' => '\Bex\Monolog\Handler\BitrixHandler',
'level' => 'DEBUG',
'event' => 'TYPE_FOR_EVENT_LOG',
'module' => 'vendor.module'
),
),
'loggers' => array(
'app' => array(
'handlers'=> array('default'),
),
'feedback' => array(
'handlers'=> array('feedback_event_log'),
)
)
),
'readonly' => false
)
);
- Подробнее об адаптере для одной из самых мощных и популярных библиотек для логирования (для 1С-Битрикс)
- Подробнее о библиотеке Monolog
/*Отвечает за соединения с базами данных*/
'connections' =>
array (
'value' =>
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => '',
'database' => '',
'login' => '',
'password' => '',
'options' => 2,
'handlersocket' => array (
'read' => 'fast'
),
),
),
'fast' => array (
'className' => '\Bitrix\Name\Data\HsphpReadConnection',
'host' => 'localhost:31006',
),
'readonly' => true,
),
-
readonly
ключ означает, что нельзя изменить значение через API -
className
- имя класса, которое отвечает за работу с базой данных -
host
- хост для соединения с базой данных -
database
- имя базы данных -
password
- пароль к базе данных -
handlersocket
- указывается какое соединение использовать. Необходимо создать подключение, где будут указаны класс и хост -
options
- параметры соединения, например 1 - постоянное соединение, 2 - простое соединение, 3 - это оба:
'options' => ((!defined("DBPersistent") || DBPersistent) ? 1 : 0) | ((defined("DELAY_DB_CONNECT") && DELAY_DB_CONNECT === true) ? 2 : 0)
Обычное соединение устанавливается каждый раз во время выполнения страницы при первом обращении к базе данных. Установленное соединение освобождается (в большинстве случаев и закрывается) после завершения страницы.
Постоянное соединение (функции PHP обычно называются *_pconnect) устанавливается один раз при первом обращении к базе данных и при повторных обращениях, даже из других страниц, используются уже открытые соединения к базе данных.
default
- база данных используемая по умолчанию, можно задать несколько соединений с базами данных, затем использовать в проекте разные соединения.
Рекомендуется вместо \\Bitrix\\Main\\DB\\MysqlConnection
использовать \\Bitrix\\Main\\DB\\MysqliConnection
Обращение к другим соединениям с базами данных:
/* connection_name - имя соединения, указанное в .settings.php.
/* Bitrix использует соединение по умолчанию default
*/
$connection = Bitrix\Main\Application::getConnection('connection_name');
Подробнее о базах данных в 1С - Битрикс
/*Отключение сброса кэша, для решения некоторых проблем с php Zend Optimizer+*/
'no_accelerator_reset' =>
array (
'value' => false,
'readonly' => false,
),
Применение данной настройки я не нашёл за исключением решения проблем с php Zend Optimizer+
/*Установка константы BX_HTTP_STATUS используется в Configuration::wnc*/
'http_status' =>
array (
'value' => true,
'readonly' => false,
),
Применение данной настройки находится в методе, который формирует файл .settings.php
(Configuration::wnc), так же в фигуриует в методе CHTTP:SetStatus().
- \Bitrix\Main\Config\Configuration
- \Bitrix\Main\Config\Configuration::getInstance()
- \Bitrix\Main\Config\Configuration::get()
- \Bitrix\Main\Config\Configuration::add()
- \Bitrix\Main\Config\Configuration::saveConfiguration()
<?php
return array (
/*Отвечает за кодировку*/
'utf_mode' =>
array (
'value' => true,
'readonly' => true,
),
/*Отвечает за кодиорвку по умолчанию*/
'default_charset' =>
array (
'value' => 'cp866',
'readonly' => false,
),
/*Отключение сброса кэша, для решения некоторых проблем с php Zend Optimizer+*/
'no_accelerator_reset' =>
array (
'value' => false,
'readonly' => false,
),
/*Установка константы BX_HTTP_STATUS используется в Configuration::wnc*/
'http_status' =>
array (
'value' => true,
'readonly' => false,
),
/*Время кэширования в секундах*/
'cache_flags' =>
array (
'value' =>
array (
'config_options' => 3600,
'site_domain' => 3600,
),
'readonly' => false,
),
/*Отвечает за куки на сайте*/
'cookies' =>
array (
'value' =>
array (
'secure' => false,
'http_only' => true,
),
'readonly' => false,
),
/*Отвечает за обработку и логирование ошибок*/
'exception_handling' =>
array (
'value' =>
array (
'debug' => true,
'handled_errors_types' => 20853,
'exception_errors_types' => 20853,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => NULL,
'log_size' => NULL,
),
),
),
'readonly' => false,
),
/*Отвечает за соединения с базами данных*/
'connections' =>
array (
'value' =>
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
'host' => '',
'database' => '',
'login' => '',
'password' => '',
'options' => 2,
),
),
'readonly' => true,
),
/*Отвечает за кэширование*/
'cache' =>
array (
'value' =>
array (
'type' => 'memcache', /*memcache, apc, xcache, files, none*/
'sid' => '',
'memcache' =>
array (
'host' => '127.0.0.1',
),
),
'readonly' => false,
),
);
<?php
use Bitrix\Main\Config as Conf;
$configuration = Conf\Configuration::getInstance();
//get
$handl = $configuration->get('exception_handling');
//add
$configuration->add('exception_handling', $handl);
//save config to file
$configuration->saveConfiguration();