在我的 composer.lock
文件中,我注意到一些包有一个 reference
值:
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.1.zip",
"reference": "8.x-1.1",
"shasum": "c678e5704a98c6a0549e415412da081cfeb03a00"
},
有些只有null
:
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.0-alpha5.zip",
"reference": null,
"shasum": "927aa4c8d8b40b0cd2442bee86f2f386d25e53ca"
},
值指的是什么?我以为它指的是提交,但这两个都是 zip
包,其中 1 个有 reference
而另一个没有。
最佳答案
我检查了两个模块的代码并阅读了一些文章。在与 JS 开发人员进行一些研究和讨论后,我了解到 composer 文件中的“引用”表示 PHP 库标记、分支或 zip 文件。因此,例如,如果我说我的包引用来自 "reference":"master"
那么每次我运行 composer update 命令时都会从该存储库中提取代码。定义引用是一种省略将 Composer 文件添加到库本身的要求的方法。但是,如果您的库已经在其自己的目录中使用 composer.json 文件支持 Composer ,那么您将不需要在 Composer 文件中定义包。
现在,让我们来看看这两个模块。首先,检查位于 http://cgit.drupalcode.org/paragraphs/tree/?h=8.x-1.x 的段落模块的源代码树。 ,你会注意到那里没有可用的 composer.json 文件,所以我们必须需要在 composer 文件中定义引用参数来告诉应用程序选择正确的源文件。但另一方面,如果你在 http://cgit.drupalcode.org/redirect/tree/ 看到重定向模块的代码源树,你会在文件的根目录下找到一个 composer.json 。该文件将允许您从应用程序 composer.json 文件中省略引用参数。
此外,我认为如果我们不定义此参数,则会引入最新的参数,并根据上述标准在 composer install 命令运行时更新 composer.lock 文件。
希望这能消除您的疑虑!
关于php - 在 composer 文件中, "reference"指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655757/