作曲家提供/要求不找到实现

时间:2017-01-05 12:13:15

标签: php composer-php composer.json

尝试使用作曲家的provide功能,我在我的实施存储库ffa-php-mock中添加了provide部分,我在其中提供了shadiakiki1986/ffa-php-implementation。在我使用此实现ffa-php-cli的存储库中,我替换了需要ffa-php-mock的{​​} {}需要entry的作曲家需求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功能已经存在的东西。 entry提供了phpcr/phpcr-implementationjackalope/jackalope已经要求composer init

如果我使用phpcr/phpcr-implementation启动一个新的空项目并指定我的项目取决于phpcr/phpcr-implementation,我会得到与上面相同的错误。我还尝试将composer update直接放在composer.json文件中并运行> cat composer.json { "require": { "phpcr/phpcr-implementation": "2.1.0" } } ,但无济于事。

> composer --version
Composer version 1.3.0 2016-12-24 00:47:03

我认为这可能是作曲家的一个错误,但似乎DoctrinePHPCRBundle它已经在使用。

provide

我能找到的最接近的作曲家github问题是this issue,但是那个说明报告不明确,而不是#container { height: 150px; display: flex; } #results { overflow-y: scroll; } 不起作用

1 个答案:

答案 0 :(得分:1)

所以我最终得知具有实现的特定包仍应包含在composer.json文件中。对于使用该库的软件包,可以将它们添加到require部分。对于直接需要实现的库,应该在require-dev中完成,以便单元测试可以工作,因此使用库的其他项目不需要使用相同的实现