【问题标题】:composer provide / require not finding implementation作曲家提供/不需要找到实现
【发布时间】:2017-01-05 20:55:32
【问题描述】:

尝试使用 composer 的 provide 功能,我在我的实现存储库ffa-php-mock 中添加了一个provide 部分,我说它提供了shadiakiki1986/ffa-php-implementation。在使用此实现 ffa-php-cli 的存储库中,我将需要 ffa-php-mock 的作曲家需要 entry 替换为需要 ffa-php-implementationentry。如果我尝试运行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 中的一个错误,但从 this issue 看来它已经在使用中。

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

我能找到的最接近的 composer github 问题是 #2811,但那个说报告不清楚,而不是 provide 不起作用

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    所以我最终了解到带有实现的特定包仍应包含在 composer.json 文件中。对于使用该库的包,没关系,因为它们被添加到 require 部分。对于直接需要实现的库,应该在require-dev 中完成,以便单元测试可以工作,并且使用该库的其他项目不需要使用相同的实现

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 1970-01-01
      • 2018-04-13
      • 2021-03-03
      • 2012-05-01
      • 2016-04-22
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      相关资源
      最近更新 更多