【问题标题】:Zend Framework Composer PackagesZend Framework Composer 包
【发布时间】:2012-07-29 16:23:34
【问题描述】:

我想为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"
}

问题是 composer 安装了整个 zendframework/zendframework 包。

知道为什么吗?

【问题讨论】:

    标签: php zend-framework package composer-php


    【解决方案1】:

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

    将 repo 添加到你的包中:

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

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

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

    你只需要指定你想要的包,如果它们有依赖,它们将被compser解析。

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

    【讨论】:

    • @nicky-de-maeyer 确实如此。我的 json 文件中有 repo,只添加了 zend-db,但整个框架正在被拉入。当你说它目前不工作时,这就是你的意思吗?
    【解决方案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

    【讨论】:

    • 据我所知,只有 ZF2 可以通过 composer 获得,并且 db-component 被重写,因此 1.9 的依赖关系并不重要。并且(关于您的编辑):链接的composer.json 将(self.)版本设置为2.0.*(参见底部的branch_alias-指令)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2012-09-12
      • 2015-09-15
      • 2013-06-19
      • 2015-09-22
      • 2013-09-02
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多