Попытка использовать композитора предоставлять особенность, я добавил provide
раздел моего репозитория реализации FFA-PHP-макет, в котором я говорю, что это обеспечивает shadiakiki1986 / FFA-PHP-реализация. В моем хранилище, потребляющем эту реализацию, FFA-PHP-кли, Я заменил композитор требуют запись требующий ffa-php-mock
с запись требующий ffa-php-implementation
, Если я попытаюсь запустить composer update
Я получаю следующее
> composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package shadiakiki1986/ffa-php-implementation could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
Можете ли вы дать мне какие-либо советы о том, как отладить, в чем проблема?
Я попробовал provide
особенность в фиктивном проекте о чем-то, что уже существует. Jackalope / Jackalope обеспечивает phpcr/phpcr-implementation
что, в свою очередь, уже требуется DoctrinePHPCRBundle.
Если я начну новый пустой проект с composer init
и укажите, что мой проект зависит от phpcr/phpcr-implementation
Я получаю ту же ошибку, что и выше. Я тоже пробовал ставить phpcr/phpcr-implementation
непосредственно в файле composer.json и запустить composer update
, но безрезультатно.
> cat composer.json
{
"require": {
"phpcr/phpcr-implementation": "2.1.0"}
}
Я думаю, что это, возможно, ошибка в композиторе, но, похоже, из Эта проблема что он уже используется.
> composer --version
Composer version 1.3.0 2016-12-24 00:47:03
Самая близкая проблема композитора GitHub, которую я могу найти, # 2811, но тот говорит, что отчетность не ясна, не то provide
не работает
В итоге я узнал, что конкретный пакет с реализацией должен быть включен в файл composer.json. Для пакетов, использующих библиотеку, это нормально, поскольку они добавляются в require
раздел. Для библиотеки, которая непосредственно требует реализации, это должно быть сделано в require-dev
чтобы модульные тесты могли работать, и чтобы другие проекты, использующие библиотеку, не требовали использования той же реализации
Других решений пока нет …