Ошибка composer.phar: ReflectionException + NpmRepository does not exist
Рассказывать про механизм composer’а и установку плагинов и зависимостей не буду. Сейчас речь пойдет про ошибку композера при попытке выполнить одну из команд:
composer install # or composer update
Команда может отдать следующий результат выполнения с указанием ошибок:
Deprecation Notice: The Composer\Package\LinkConstraint\MultiConstraint class is deprecated, use Composer\Semver\Constraint\MultiConstraint instead. in phar:///usr/local/bin/composer/src/Composer/Package/LinkConstraint/MultiConstraint.php:17 Deprecation Notice: The Composer\Package\LinkConstraint\LinkConstraintInterface interface is deprecated, use Composer\Semver\Constraint\ConstraintInterface instead. in phar:///usr/local/bin/composer/src/Composer/Package/LinkConstraint/LinkConstraintInterface.php:17 [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist </span> [ErrorException] Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository::whatProvides() should be compatible with Composer\Repository\ComposerRepository::whatProvides(Composer\DependencyResolver\Pool $pool, $name, $bypassFilters = false)
Эта ошибка composer’а вызвана обновлениями API Composer\Repository\ComposerRepository::whatProvides, в следствии чего и отвалились некоторые методы, которые используются при install или update.
Решение
Для обновления этого API достаточно глобально обновить плагин fxp/composer-asset-plugin, сделать это можно командой:
php composer.phar global update fxp/composer-asset-plugin --no-plugins // или из директории любого проекта, где инициализирован composer composer global update fxp/composer-asset-plugin --no-plugins
Если после этого команды composer install или composer update все равно вызывают вышеуказанную ошибку, выполните полную установку плагина композера:
composer global require fxp/composer-asset-plugin --no-plugins
Проблема решена!
Спасибо, помогла полная установка плагина