如何让Composer单独留下一个包

时间:2014-02-03 11:16:53

标签: php composer-php

我有两个用作曲家拉到我项目的软件包。

我不想让作曲家从任何地方获取这些包的更新,也不希望作曲家试图用任何存储库覆盖我的文件。

如果我从composer.json文件中删除软件包,则删除软件包并删除自动加载器。

如何让作曲家单独保留软件包并允许我处理代码而不会丢失更新时的文件或自动加载器。

2 个答案:

答案 0 :(得分:4)

我想出了如何做到这一点。

您要做的是创建工件目录。

因此,在您的main composer.json文件中,您需要执行以下操作:

"repositories": [
    {
        "type": "artifact",
        "url": "custom/artifact/"
    },
    ..........

url var应该是相对于composer.json文件的zip文件的文件路径。

现在您只需要将一个名称和版本的composer.json文件添加到zip文件中。

如果包中已包含composer.json文件,则只需添加一个版本。

例如: vendor-package-1.0.zip需要一个composer.json文件:

{
    "version": "1.0",
    "name": "vendor/package",
    "type": "library",
    ........... etc
}

在composer.json文件中定义版本很重要,否则就找不到它。

现在,您可以从项目编辑器文件中按版本调用此包:

"require": {
    "vendor/package": "1.0",

现在,您可以在包中创建和更新文件,而无需担心某些在线更改或脱机服务器会导致任何问题。

只要版本保持不变,就应该保留文件。

好处是添加或删除的文件仍会更新zip包的composer.json文件中指定的自动加载器。

答案 1 :(得分:2)

为该软件包提供特定版本,以便在新版本出现时不会更新

如果您没有太多包裹,可以使用

composer update package1 package2