Блог Горошко Андрея 1C-Битрикс,PHP,SQL,Разработка Configuration: Руководство разработчика

Configuration: Руководство разработчика

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Configuration: Руководство разработчика», проанализируем лучшие практики и покажем, как правильно использовать запросов в реальных задачах.

—
title: Конфигурация
—

Конфигурация подключения к базе данных в Bitrix Framework хранится в файле /bitrix/.settings.php в секции connections:

'connections' => [
    'value' => [
        // Основное соединение с базой данных
        'default' => [
            'className' => \Bitrix\Main\DB\MysqliConnection::class, // Используем драйвер MySQLi для соединения
            'host' => 'localhost',     // Хост базы данных
            'database' => 'busik',     // Имя базы данных
            'login' => 'db_user',      // Имя пользователя БД
            'password' => '***',       // Пароль пользователя 
            'options' => 2,            // Дополнительные опции соединения (2 - отложенное соединение)
        ],
    ],
    'readonly' => true, // Запрещает изменение настроек во время выполнения скрипта
],

Установите параметр readonly => true для секции connections, чтобы предотвратить изменение настроек подключения во время работы.

Как настроить подключение к БД

Параметр className определяет класс для работы с базой данных.

Основные СУБД:

  • MySQL — \Bitrix\Main\DB\MysqliConnection, требует расширение mysqli,
  • PostgreSQL — \Bitrix\Main\DB\PgsqlConnection, требует расширение pgsql .

Дополнительные СУБД:

  • MS SQL — \Bitrix\Main\DB\MssqlConnection, требует расширение sqlsrv,
  • Oracle — \Bitrix\Main\DB\OracleConnection, требует расширение oci8.

Key-value хранилища:

  • HandlerSocket — \Bitrix\Main\Data\HsphpReadConnection, требует библиотеку HSPHP,
  • Memcache — \Bitrix\Main\Data\MemcacheConnection, требует расширение memcache,
  • Memcached — \Bitrix\Main\Data\MemcachedConnection, требует расширение memcached,
  • Redis — \Bitrix\Main\Data\RedisConnection, требует расширение redis.

Как управлять режимом подключения

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

  • 1 (Connection::PERSISTENT) — постоянное соединение, не закрывается после выполнения запроса,
  • 2 (Connection::DEFERRED) — отложенное соединение, устанавливается только при первом запросе.

Флаги можно объединять через битовые операции:

  • 3 = 1 | 2 — PERSISTENT + DEFERRED,
  • 0 — обычное соединение, без специальных режимов.

Как подключить HandlerSocket

HandlerSocket — это плагин для MySQL, который работает без SQL-запросов. Он снижает нагрузку на сервер и ускоряет обработку данных.

Добавьте указание на HandlerSocket в основное соединение:

'default' => [
    'className' => \Bitrix\Main\DB\MysqliConnection::class,
    'handlersocket' => [
        'read' => 'handlersocket', // Использовать HandlerSocket для чтения
    ],
],

Добавьте отдельное соединение для HandlerSocket с указанием хоста и порта:

'handlersocket' => [
    'className' => \Bitrix\Main\Data\HsphpReadConnection::class,
    'host' => 'localhost',  // Хост сервера HandlerSocket
    'port' => 9998,        // Порт для чтения (обычно 9998)
    'port_write' => 9999,  // Порт для записи (обычно 9999)
],

О том, как HandlerSocket ускоряет работу с БД, читайте в статье HandlerSocket.

Как добавить дополнительные соединения

Чтобы добавить соединение с БД, дополните секцию connections в файле конфигурации /bitrix/.settings.php:

'connections' => [
    'value' => [
        // Основное соединение с базой данных
        'default' => [
            'className' => \Bitrix\Main\DB\MysqliConnection::class, // Используем драйвер MySQLi для соединения
            'host' => 'localhost',     // Хост базы данных
            'database' => 'busik',     // Имя базы данных
            'login' => 'db_user',      // Имя пользователя 	БД
            'password' => '***',       // Пароль пользователя 
            'options' => 2,            // Дополнительные опции соединения (2 — постоянное соединение)
        ],
        
        // Дополнительное соединение с Redis для кеширования
        'redis' => [
            'className' => \Bitrix\Main\Data\RedisConnection::class, // Используем драйвер Redis
            'host' => 'rediska',       // Хост Redis сервера
            'port' => '12345',         // Порт для подключения к Redis
        ],
    ],
    'readonly' => true, // Запрещает изменение настроек во время выполнения скрипта
],

Получить подключения в коде:

// Подключение по умолчанию (default)
$db = \Bitrix\Main\Application::getConnection();

// Явное указание подключения
$db = \Bitrix\Main\Application::getConnection('default');
$redis = \Bitrix\Main\Application::getConnection('redis');

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к запросов, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Configuration: Руководство разработчика».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить поля лида crm.lead.fieldsПолучить поля лида crm.lead.fields

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить поля лида crm.lead.fields», проанализируем лучшие практики и

Разработка крупного интернет-магазина на 1С-Битрикс: Enterprise архитектураРазработка крупного интернет-магазина на 1С-Битрикс: Enterprise архитектура

Услуга «Разработка крупного интернет-магазина на 1С-Битрикс: Enterprise архитектура» предназначена для компаний, стремящихся получить технологическое превосходство над конкурентами, ускорить работу сайта и обеспечить бесперебойную обработку тысяч заказов. архитектура на микросервисах, шардирование

Как использовать метод SDK sale.property.delete в Битрикс24Как использовать метод SDK sale.property.delete в Битрикс24

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Как использовать метод SDK sale.property.delete в Битрикс24». Мы подготовили подробный разбор принципов работы и развернутые