Порой возникает необходимость вынести некоторые параметры за пределы скрипта в котором они используются в отдельный конфигурационный файл, важно чтобы путь до него был не слишком долог, иначе просто забудется, и чтобы параметры можно было легко загрузить из него. Писать свой загрузчик в итак большой системе не очень хочется, так же нужно придумать где хранить сам файл, поэтому возникает закономерный вопрос, можно ли хранить свои настройки в файле bitrix/.settings.php ? Да, можно.
Добавление
Файл bitrix/.settings.php возвращает массив, для добавления своих настроек, необходимо добавить новый элемент или элементы в этот массив, например:
<?php
return array(
'utf_mode' => array(
...
),
'cache_flags' => array(
...
),
'cookies' => array(
...
),
'exception_handling' => array(
...
),
'connections' => array(
...
),
'cache' => array(
...
),
// блок со своими настройками
'custom_service_api' => array(
'value' => array(
'url' => 'https://precord.ru/api',
'login' => 'user777',
'token' => 'fjesflj309ke9i093ikesf'
)
),
);
Получение своих параметров в коде:
$arConfig = \Bitrix\Main\Config\Configuration::getInstance()->get('custom_service_api');
// $arConfig содержит:
array (
'url' => 'https://precord.ru/api',
'login' => 'user777',
'token' => 'fjesflj309ke9i093ikesf',
)
Примеры использования:
- Если есть рабочая и тестовая копия сайта, то можно ввести параметр который будет указывать является ли данный сайт рабочим;
- На одном из сайтов отправка рассылок (выпусков) происходила с другого почтового сервера, чтобы не загружать основной, настройки для почтового сервера рассылок хранились в .settings.php;
- Хранение реквизитов доступов для каких-либо api;
Пример файла .settings.php со значениями по умолчанию приведен в статье: Bitrix пример файла .settings.php