Composer
Composer — стандартный менеджер зависимостей для PHP. Он устанавливает библиотеки из каталога Packagist, следит за согласованностью их версий и генерирует скрипт-автозагрузчик классов vendor/autoload.php.
В Bitrix Framework Composer открывает доступ к:
-
сторонним библиотекам — готовым пакетам с Packagist: генерация документов, работа с внешними API, логирование.
Установить Composer
Composer можно установить:
-
глобально — для работы в любой папке сервера,
-
локально — только для текущего проекта.
Используйте официальную инструкцию для установки Composer на сервере.
Проверьте, что Composer работает:
composer -V
# Должна отобразиться версия, например:
# Composer version 2.8.5 2025-01-21 15:23:40
Подключить Composer к Bitrix Framework
Чтобы Bitrix Framework автоматически подключал автозагрузчик Composer, укажите путь к composer.json в файле .settings.php. Настройка состоит из трех шагов: разместить файл, указать путь к нему, подключить стандартные зависимости.
Шаг 1. Разместить composer.json
Создайте composer.json за пределами DOCUMENT_ROOT, например в /home/bitrix/. Так конфигурация не будет доступна из браузера.
Если вынести файл за DOCUMENT_ROOT нельзя, разместите его в /local/php_interface/ и закройте файл composer.json и папку vendor от веб-доступа.
В дистрибутиве есть пример файла конфигурации /bitrix/composer.json.example. Используйте его как основу для своего composer.json.
Шаг 2. Указать путь к composer.json
Добавьте в файл /home/bitrix/www/bitrix/.settings.php настройку composer.config_path:
return [
'composer' => [
'value' => [
'config_path' => '/home/bitrix/composer.json'
]
]
];
Bitrix Framework не читает содержимое composer.json. По расположению файла он находит vendor/autoload.php и подключает его автоматически.
Автозагрузчик появится после первой установки зависимостей на следующем шаге.
Шаг 3. Подключить стандартные зависимости
Стандартные зависимости ядра описаны в файле bitrix/composer-bx.json. Подключите его к своему composer.json через плагин Composer Merge Plugin. Для этого в ваш composer.json добавьте подключение плагина:
{
"require": {
"wikimedia/composer-merge-plugin": "^2.0"
},
"extra": {
"merge-plugin": {
"include": [
"/path/to/bitrix/composer-bx.json"
]
}
}
}
Путь /path/to/bitrix/ — полный путь к папке bitrix на вашем сервере, например, /home/bitrix/www/bitrix/.
Установите зависимости из папки с composer.json:
cd /home/bitrix
composer install
Composer создаст папку vendor/ рядом с composer.json и установит туда зависимости. Автозагрузчик vendor/autoload.php подключится автоматически — в коде подключать его вручную не нужно.
Установить сторонние пакеты
После настройки новые пакеты устанавливают одной командой. Например, чтобы генерировать Word-документы, установите пакет phpoffice/phpword:
composer require phpoffice/phpword
Команда добавит пакет в composer.json, скачает его в vendor/ и обновит автозагрузчик. Классы пакета сразу доступны в коде:
<?php
// Подключение верхней части сайта
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\IOFactory;
$phpWord = new PhpWord();
$section = $phpWord->addSection();
$section->addText('Документ создан в Bitrix Framework');
$writer = IOFactory::createWriter($phpWord, 'Word2007');
$writer->save($_SERVER['DOCUMENT_ROOT'] . '/upload/example.docx');
echo "Файл сохранен - <a href='/upload/example.docx' download>скачать</a>";
// подключение нижней части сайта
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php');
Обновлять пакеты
Чтобы обновить пакет до свежей версии с учетом ограничений из composer.json, перейдите в директорию с composer.json и выполните:
composer update phpoffice/phpword
Composer проверит совместимость версии PHP и пакетов и зафиксирует точные версии в файле composer.lock. Храните composer.lock в репозитории проекта, тогда на всех серверах будут одинаковые версии.
Что почитать
-
Документация Composer — команды, настройка
composer.json, работа с версиями. -
Packagist — каталог пакетов для Composer.
-
ORM-аннотации — возможности ядра, которые включаются через Composer.
-
Интерфейс командной строки CLI — команды ядра, доступные после установки зависимостей.