我最近分叉了robmorgan / phinx项目并修改了我项目中的composer.json文件以使用分叉版本:
{
"name": "...",
"description": "...",
"repositories": [
{
"type": "package",
"package": {
"name": "lube8uy/phinx",
"version": "master",
"source": {
"url": "https://github.com/lube8uy/phinx.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"php": ">=5.3.0",
"lube8uy/phinx": "dev-master"
}
}
第一个问题:其他供应商
现在,当我在我的项目中加载composer.json文件时,我正确地得到了这个分叉版本。 我不知道的是如何从phinx项目本身加载依赖项: https://github.com/lube8uy/phinx/blob/master/composer.json
如果我使用原始的packagist源代码一切正常,我得到了所有依赖项,但现在我使用自己的存储库我无法得到它们。
第二个问题:更新
如何收到我对github源码所做的修改? 我做了一些修改,将它们推送到正确的分支,然后我运行作曲家更新但没有更新......我做错了什么?
非常感谢
答案 0 :(得分:3)
关于您的第一个问题:
尝试将其作为VCS存储库(版本控制系统,请参阅composer doc on vcs repositories),如下所示:
{
"name": "...",
"description": "...",
"repositories": [
{
"type": "vcs",
"url": "https://github.com/lube8uy/phinx"
}
],
"require": {
"php": ">=5.3.0",
"robmorgan/phinx": "dev-master"
}
}
现在需要在robmorgan/phinx
找到的包https://github.com/lube8uy/phinx
,这是所需的分叉。它仍然具有原始名称robmorgan/phinx
,但位于不同的位置。
由于其composer.json
中的包名称,它仍然具有相同的名称。如果您要将名称更改为lube8ye/phinx
,请在前缀中composer.json
更改名称。
关于第二个问题:
在项目中执行php composer.phar update
时,应自动更新您通过编辑器所需的程序包中所做的更改。如果这不起作用,请尝试通过在dev-master
部分require
之后添加提交哈希来强制composer需要特定提交,如下所示:
"require": {
"robmorgan/phinx": "dev-master#1234abcd"
}
Whereat 1234abcd
是所需提交的哈希值。
另外:尝试通过删除文件夹内容来清除作曲家的缓存,以避免加载缓存版本(请参阅composer doc on COMPOSER_CACHE_DIR
)