Php 如何覆盖composer.json中的其他依赖项
我正在使用,这取决于和。依赖关系是内部处理的,例如:Php 如何覆盖composer.json中的其他依赖项,php,symfony,composer-php,symfony-2.6,Php,Symfony,Composer Php,Symfony 2.6,我正在使用,这取决于和。依赖关系是内部处理的,例如: https://github.com/h4cc/AliceFixturesBundle/blob/master/composer.json { "name": "h4cc/alice-fixtures-bundle", "description": "Symfony2 Bundle for loading fixture data with the Alice library.", "keywords": ["Sym
https://github.com/h4cc/AliceFixturesBundle/blob/master/composer.json
{
"name": "h4cc/alice-fixtures-bundle",
"description": "Symfony2 Bundle for loading fixture data with the Alice library.",
"keywords": ["Symfony2", "Fixtures", "Alice", "Loader", "Doctrine", "ORM", "MongoDB"],
"type": "symfony-bundle",
"license": "MIT",
"authors": [
{
"name": "Julius Beckmann",
"email": "github@h4cc.de"
}
],
"require": {
"php": ">=5.3.0",
"nelmio/alice": "~1.6",
"doctrine/common": "~2.1",
"psr/log": "~1.0",
"symfony/finder": "~2.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"symfony/framework-bundle": "~2.1",
"doctrine/orm": "~2.1",
"doctrine/mongodb-odm": "1.0.*@dev",
"doctrine/mongodb-odm-bundle": "3.0.*@dev",
"matthiasnoback/symfony-config-test": "~0.2.1"
},
"autoload": {
"psr-4": {
"h4cc\\AliceFixturesBundle\\": ""
}
}
}
依赖于:
https://github.com/nelmio/alice/blob/master/composer.json
{
"name": "nelmio/alice",
"description": "Expressive fixtures generator",
"keywords": ["fixture", "data", "test", "orm"],
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be"
},
{
"name": "Tim Shelburne",
"email": "shelburt02@gmail.com"
}
],
"require": {
"php": ">=5.4",
"fzaninotto/faker": "~1.0",
"symfony/yaml": "~2.0"
},
"require-dev": {
"doctrine/common": "~2.3",
"symfony/property-access": "~2.2",
"phpunit/phpunit": "3.7.*"
},
"autoload": {
"psr-4": { "Nelmio\\Alice\\": "src/Nelmio/Alice" }
},
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
}
}
我的问题就在这一行:
“fzaninoto/faker”:“~1.0”,
,如何在我的composer.json
上重写这一行,以便使用“fzaninoto/faker”:“1.5.@dev”
而不是在您自己的composer.json中定义的那一行?,您可以这样做:
{
"require": {
"h4cc/alice-fixtures-bundle": "dev/master", //Whatever version you use
"fzaninotto/faker": "dev-master as 1.0"
}
}
为什么要覆盖它?@JamesSpence,因为我需要在Faker repo上使用一些尚未标记的东西,而且它只在dev/master branchhm上可用。看起来这样的行为是可能的。尽管如此,还是可以看到一个警告:重写依赖项可能会对其他依赖项(需要重写依赖项的依赖项)产生不利影响。@jamesspune我以前已经检查过该链接,但不知道如何在我的环境中执行该操作。你能提供解决方案吗?不起作用,首先得到的是
无效版本字符串“~1.0”在“1.5.*@dev as~1.0”中,别名必须是一个精确的版本
,然后将行从您的更改为此“fzaninotto/faker:“1.5.*@dev as 1.0.0”
,但后来我得到了这个您的需求无法解决为一组可安装的软件包。
我将询问软件包管理员,看看如何处理这个问题,谢谢,您的版本规范(1.5.*@dev
)似乎不准确。试试devmaster
,看看是否有效。没问题。更新了答案以反映变化。谢谢你的回答,这对我今天很有帮助。2018-05-08