12

我想为zendframework/zend-db包添加依赖项,所以我将它添加到我的composer.json:

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],
"require": {
    "php": ">=5.3.2",

    "symfony/class-loader":  "dev-master",
    "symfony/console":       "dev-master",
    "symfony/filesystem":    "dev-master",
    "symfony/finder":        "dev-master",
    "symfony/locale":        "dev-master",
    "symfony/yaml":          "dev-master",
    "doctrine/dbal":         "dev-master",
    "zendframework/zend-db": "dev-master"
}

问题是作曲家安装了整个zendframework/zendframework包。

知道为什么吗?

4

3 回答 3

11

正如这里解释的那样http://packages.zendframework.com/#composer ZF2 现在提供了一个包含所有模块的作曲家存储库。

将 repo 添加到您的包中:

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],

从这里开始,您可以单独添加包:

"require": {
    "zendframework/zend-config": "2.0.*",
    "zendframework/zend-http": "2.0.*"
},

你只需要指定你想要的包,如果它们有依赖关系,它们将由 Compser 解析。

尽管这似乎不起作用...

于 2012-08-09T20:39:59.730 回答
2

这是来自 zend github 中 zend-db的composer.json 。根据文件,zend-db 没有任何依赖关系。

这可能是因为您尝试从 dev-master 下载包并且 dev-master 的 composer.json 中存在不匹配的事实。

我建议您将所需的版本更改为 2.0.* 之类的,然后重试。


此外,虽然 Zend 框架是松耦合的,但在旧版本的框架中,依赖关系并不明确。

例如,通过快速浏览 ZEND 1.9 中的 zend_db 源代码,我发现它至少依赖于以下包:

  • 控制器
  • 配置
  • 筛选
  • json
  • 加载器(对于自动加载,我认为这可能不是必需的,因为作曲家自动加载器)
  • 乌里
  • 看法
  • 野火

这些包可能有其他依赖项,因此下载大小。无论如何,正如 King 解释的那样,Zend Framework 2.0 与 1.9 版不同,也许这不适用于 2.0

于 2012-07-31T21:52:51.017 回答
0

尝试检查某些包的依赖项中是否有一些 php 扩展。我尝试安装 zend-http 软件包并遇到同样的问题。在这里,我找到了安装 php_intl 扩展的建议,因为它是 zend-validate 所必需的 - zend-http 包的子依赖项。一旦我将此扩展添加到 php.ini - 问题就解决了。

于 2013-03-28T21:41:08.293 回答