Организации Environment
Один из альтернативных и наиболее удобных способов организовать настройку environment в Bitrix, это воспользоваться пакетом vlucas/phpdotenv. Он удобен тем, что хранит все параметры (изменяемые, в зависимости от окружения) в одном маленьком файле .env
, с простым и понятным синтаксисом.
Для начала нужно установить пакет vlucas/phpdotenv
через composer:
composer require vlucas/phpdotenv
Файл с настройками нужно создать в корневом каталоге сайта:
.env.example
копия.env
, который хранится в Git, не используется в приложении и содержит лишь возможные примерные настройки, служит как подсказка для разработчиков, чтобы они знали как настроить окружение и сосздать себе свой рабочий.env
файл.env
файл который не хранится в Git, и содержит специальные настройки под конкретное окружение
Поскольку пакет был поставлен через Сomposer, его классы уже доступны в .settings.php
после строчки:
.settings.phprequire($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php');
Полный код файла отвечающий за подключение к базе, будет выглядить следующим образом:
.settings.php<?
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php')) {
require($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php');
\Dotenv\Dotenv::createImmutable($_SERVER['DOCUMENT_ROOT'])->load();
}
return array(
'connections' =>
array(
'value' =>
array(
'default' =>
array(
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => $_ENV['MYSQL_HOST'],
'database' => $_ENV['MYSQL_DATABASE'],
'login' => $_ENV['MYSQL_LOGIN'],
'password' => $_ENV['MYSQL_PASSWORD'],
'options' => 2.0,
),
),
'readonly' => true,
)
);
Пример боевого .env
файла:
.envMYSQL_HOST=db
MYSQL_DATABASE=hmarketing_min
MYSQL_LOGIN=root
MYSQL_PASSWORD=root123