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