Zend Framework Composer Packages



我想向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包。

知道为什么吗?

如下所述http://packages.zendframework.com/#composerZF2现在提供了一个包含所有模块的composer存储库。

将回购添加到您的包中:

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

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

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

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

尽管这似乎在自动取款机上不起作用。。。

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

这可能是因为您试图从dev-master下载包,而dev-master的composer.json中存在不匹配。

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


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

例如,通过快速浏览ZEND1.9中zend_db的源代码,我发现它至少取决于以下包:

  • 控制器
  • Config
  • 过滤器
  • Json
  • Loader(对于自动加载,我认为这可能没有必要,因为composer是自动加载程序)
  • Uri
  • 查看
  • 野火

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

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

相关内容

  • 没有找到相关文章

最新更新