【问题标题】:composer require local git package without dev-mastercomposer 需要没有 dev-master 的本地 git 包
【发布时间】:2019-03-16 18:49:24
【问题描述】:
我想创建一个包,它将存储在 本地 机器上的 git 存储库中。
我不想这样要求包:
composer require vendor/package:dev-master
只是简单
composer require vendor/package
在这种情况下,不能选择使用 github、packagist、bitbucket 等外部服务。
你知道如何创建这样的包吗?
【问题讨论】:
标签:
php
composer-php
package
local
【解决方案1】:
我要说的第一件事是 Composer 旨在管理您所在机器的依赖关系。这意味着,如果我想在我的机器上设置你的项目,composer 将负责获取所有依赖项。如果代码只能在您的机器上找到,我将无法在我的计算机上设置您的项目。
我的 3 条建议是:
- 将依赖包放入您的项目中并提交。如果它没有自己的 repo,但您当前的项目依赖于它,那么我会将它提交到您的项目中。这样,所有依赖项都将存在。如果您不能出于隐私原因提交它,则可以使用私有存储库。如果这也不是一个选项,那么您将不得不继续我的第二个建议。
- 如果您无法将其提交到任何 repo,但您可以在线托管它,那么您可以将代码托管在某个公共 URL 的 zip 文件中。然后你可以告诉作曲家在哪里可以找到代码。查看 composer.json here 的存储库部分中关于内联包的部分。
- 如果你不能提交它并且你不能在线托管它,那么你必须告诉 composer 它将在服务器上的什么位置找到。您可以使用 composer.json 文件中的 psr-4 或 psr-0 字段来做到这一点。例如:
{
"autoload": {
"psr-4": {
"packageName\\": "/path/to/package/"
}
}
}
这样做将要求任何想要在另一台计算机上设置您的项目的人都必须自己下载依赖包,并将其放在他们计算机上的适当路径中。