Подключение своего composer.json довольно хорошо описано в официальной документации. Но, следует помнить о том, что в ядро фреймворка добавлены некоторые стандартные библиотеки composer, широко используемые в других пакетах. Добавлены они не через composer, а как копия репозитория, следовательно, за зависимостями нужно следить самостоятельно.
При несоответствии версий библиотек вы будете ловить ошибки вида
[ErrorException] E_COMPILE_ERROR Declaration of Bitrix\Main\Web\Uri::getScheme() must be compatible with Psr\Http\Message\UriInterface::getScheme(): string (0) /bitrix/modules/main/lib/web/uri.php:224
Решение — добавить в свой composer.json версии либ из ядра. Они зависят от версии модуля main вашего проекта.
Модуль main v23.600.0 и новее
"psr/container": "^2.0", "psr/http-client": "^1.0", "psr/http-message": "^2.0", "psr/log": "^3.0", "php-http/promise": "^1.1"
Модуль main до v23.600.0
"psr/log": "^1.0.1", "psr/http-message": "^1.0.1", "psr/container": "^1.0.0", "psr/http-client": "^1.0.1", "php-http/promise": "^1.1.0",
Больше статей и материалов по web-разработке в tg-канале - подписывайтесь!
Подписаться в telegram