Composer:多个供应商目录(zend单独的dir而不是doctrine,...)

时间:2013-06-14 22:04:10

标签: php zend-framework composer-php

我是作曲家的新手,我在互联网上搜索了几个小时,为我的问题找到了一个解决方案,我找到了一个但却无法让它工作,所以很可能是我。

我正在使用zend framework 1.12.3和一些额外的供应商(如doctrine)开始一个新项目。我不介意doctrine,phpunit,...安装在默认/供应商中(或者如果我设置另一个)但我更喜欢Zend on library / Zend而不是vendor / zendframework /....

我是作曲家的新手,所以我可能错过了一些东西。

原件:

{
    "name": "Awesome",
    "require": {
        "zendframework/zendframework1": "1.12.3",
        "doctrine/orm": "2.3.4",
        "doctrine/dbal": "2.3.4"
    },
    "require-dev": {
        "phpunit/phpunit": "3.7.21",
        "mockery/mockery": "dev-master@dev"
    }
}

我也尝试过https://github.com/composer/installers

{
    "name": "Awesome",
    "require": {
        "composer/installers": "~1.0"
        "zendframework/zendframework1": "1.12.3",
        "doctrine/orm": "2.3.4",
        "doctrine/dbal": "2.3.4"
    },
    "require-dev": {
        "phpunit/phpunit": "3.7.21",
        "mockery/mockery": "dev-master@dev"
    },
    "extra": {
        "installer-paths": {
            "library/Zend": ["zendframework/zendframework1"]
        }
    }
}

如果这是一个太大的麻烦,我可以在本地安装zend,这不是一个问题,但一次用作曲家做它会很好。

1 个答案:

答案 0 :(得分:0)

正如评论中所解释的那样,不可能在不同的(自定义)位置安装不同的包。

installer-paths不起作用,因为zend包不是受支持的类型(我认为这仅适用于wordpress包)

对于您的问题,这不是一个真正的问题。 Zend Server确实没有什么特别之处,只是因为库放在这个特定的地方。如果他们真的有一些东西,他们也有足够的时间为作曲家修理东西。

但是,即使它不是将Zend框架放在这个特定位置的解决方案,也可能在不同的目录中有多个composer.json。您只需要添加两个autoload.php文件。这没有问题,因为作曲家支持多次使用的自动加载。