Подключение своего 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

Добавить комментарий

Ваш адрес email не будет опубликован.