Composer - это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении.
В версии 18.0.5 мы начали использовать composer внутри продукта в режиме разработки. Он понадобится вам, если вы захотите воспользоваться такими преимуществами, как аннотация ORM классов и в целом интерфейсом командной строки CLI. Если вы уже используете composer в своем проекте на 1С-Битрикс, мы подготовили готовый рецепт интеграции с нашей конфигурацией зависимостей.
Прежде всего, вам нужен установленный composer. Простая инструкция по установке есть на официальном сайте.
Далее в примерах мы будем исходить из того, что composer установлен глобально и вызывается лаконичной командой:
$ composer -V
Composer version 1.6.5 2018-05-04 11:44:59
Устанавливаем зависимости из нашего bitrix/composer-bx.json
:
$ cd bitrix
$ COMPOSER=composer-bx.json composer install
После этого появится папка bitrix/vendor
, в которую будут установлены необходимые библиотеки. Если вы хотите задать другое расположение этой директории, вам понадобится создать свой composer.json
- смотрите второй вариант установки зависимостей.
По умолчанию система ожидает увидеть ваш файл composer.json
в папке bitrix
, но мы рекомендуем разместить его где-либо за пределами DOCUMENT_ROOT
(чтобы он не был доступен публично). В этом случае нужно указать путь до файла в .settings.php
, чтобы его конфигурация могла быть использована в продукте.
.settings.php
<?php
return [
'composer' => [
'value' => ['config_path' => '/path/to/your/composer.json']
],
// ...
];
В нем необходимо подключить наш файл с зависимостями bitrix/composer-bx.json
с помощью плагина Composer Merge Plugin. В минимальном виде ваш composer.json
должен содержать вызов плагина и подключение нашей конфигурации:
composer.json
(можно скопировать из bitrix/composer.json.example):
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master"
},
"extra": {
"merge-plugin": {
"require": [
"/path/to/bitrix/composer-bx.json"
]
}
}
}
Вместо /path/to/bitrix/
вам нужно указать реальный путь до папки bitrix
.
К этому вы можете добавить свои завимости и настройки. Например, чтобы явно задать путь до папки vendor
(по умолчанию она будет там же, где файл composer.json
), используйте директиву "vendor-dir"
:
composer.json:
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master"
},
"config": {
"vendor-dir": "../../vendor"
},
"extra": {
"merge-plugin": {
"require": [
"/path/to/bitrix/composer-bx.json"
]
}
}
}
После описания своей конфигурации останется установить библиотеки:
$ composer install
Теперь вы можете использовать преимущества composer в своем проекте, подключая файл vendor/autoload.php
. При использовании CLI команд он будет подключен автоматически.