首页 > 解决方案 > 加载两个自定义库

问题描述

我使用 Composer 从另一个自定义库加载自定义库时遇到了一些问题


我有 2 个名为“ia/audit_trail”和“ia/flash”的自定义库。而“ia/audit_trail”需要“ia/flash”才能工作。

审计线索:https ://github.com/pierrererot/audit_trail

闪存:https ://github.com/pierrererot/flash

因此,我设置了用于调用另一个的 require 属性。没什么特别的,但是,当我composer update -vvv在我的主项目中运行一个简单的,我得到了这个错误:

您的要求无法解决为一组可安装的软件包。
问题 1
- ia/audit_trail_component ~1.0.0 的安装请求 -> 可由 ia/audit_trail_component[1.0.0] 满足。
- ia/audit_trail_component 1.0.0 需要 ia/flash_component ~1.0.0 -> 找不到匹配的包。

潜在原因:
- 包名称中的拼写错误- 根据您的最低稳定性设置,
该包在足够稳定的版本中不可用,
请参阅https://getcomposer.org/doc/04-schema.md#minimum-stability更多细节。
- 这是一个私有包,您忘记添加自定义存储库来查找它

阅读https://getcomposer.org/doc/articles/troubleshooting.md了解更多常见问题...

但是,如果我将这两个库直接放入我的主项目中(所以如果一个库不需要另一个库),它可以工作!


这是composer.json我的主要项目:

{
    "require": {
        "ia/audit_trail_component": "1.0.0"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/pierrererot/audit_trail.git"
        }
    ]
}

好的。所以我确实需要我的自定义“audit_trail”库。所以现在,这是composer.json我的自定义“audit_trail”库:

{
    "name": "ia/audit_trail_component",
    "version": "1.0.0",
    "type": "library",
    "require": {
        "ia/flash_component": "1.0.0"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/pierrererot/flash.git"
        }
    ],
    "minimum-stability": "dev"
}

好的。所以我确实需要我的自定义“flash”库。然后,这是composer.json我的自定义“flash”库:

{
    "name": "ia/flash_component",
    "version": "1.0.0",
    "description": "Flash Component",
    "type": "library",
    "minimum-stability": "dev"
}

如您所见,我的作曲家文件中的一切似乎都很好,所以我不明白我错过了什么。

==> 请问有人知道吗?

在你问之前,我明确了这些事情:

标签: phpcomposer-php

解决方案


repositories设置是 root-only - Composer 将忽略所有依赖项的此设置,并仅使用在您的主项目中定义的这些存储库。

存储库仅对根包可用,并且不会加载依赖项中定义的存储库。如果您想了解原因,请阅读常见问题解答条目。

https://getcomposer.org/doc/05-repositories.md#repository

因此,您需要将所有必要的存储库添加到composer.json您的主项目中:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/pierrererot/audit_trail.git"
    },
    {
        "type": "vcs",
        "url": "https://github.com/pierrererot/flash.git"
    }
],

推荐阅读