我目前正在尝试设置更好的本地开发,而不将有关我的本地结构的信息放入项目本身或本项目的composer.json
。
我发现有一种新方法可以使用config.json
并向其添加"repositories"
部分来实现这一点,这指向我依赖的本地项目。
我的设置
所以我设置了两个带有几个版本的项目(在带有PHP 10的IIS 10的Win10上),让我们称之为php-project1
和php-project2
。 php-project1
取决于php-project2
,我希望同时开发这两个版本。因此,我在php-project2
中所做的更改应该直接影响第一个项目。此外,它们是git存储库,它们包含作为composer版本的标记。他们也是打包者,但我当然希望使用本地版本进行开发。
他们的composer.json
看起来像这样(2个文件):
{
"name": "test/php-project1",
"description": "Some text here",
"type": "library",
"require": {
"test/php-project2": "^0.3",
}
}
{
"name": "test/php-project2",
"description": "Some other text here",
"type": "library"
}
请注意,没有"version"
条目,因为我想从git标签中使用它。
现在我尝试设置这样的全局config.json
:
{
"repositories": [
{
"type": "path",
"url": "/somePath/php-*"
}
]
}
我在这里使用php-*
是因为我想稍后将其用于所有具有此模式的存储库/项目。
那么现在的问题是什么?
在第一个项目上运行composer update
时,它不会使用php-project2
的本地版本,而是从packagist下载它。这仅在我向"version"
添加composer.json
条目时才有效,但我不想这样!
我也尝试了"type": "vcs"
,但这创建了一个克隆,我需要一个符号链接,也可以直接在其他项目中进行更改。
如果包是本地VCS存储库,则可以通过当前签出的分支或标记推断该版本。否则,应该在包的composer.json文件中明确定义版本。
目前php-project2
位于代码0.3.0
上,没有任何更改
那我该怎么办?
答案 0 :(得分:0)
在alcohol的帮助下找到了我的错误(这听起来不错^ ^)。
当你使用它并需要一个符号链接时,一定要在"version"
或(在我的情况下)检查标签(不是分支!)中添加composer.json
条目,这样作曲家可能会看到,您使用的版本符合要求。