Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend Framework Composer软件包_Php_Zend Framework_Package_Composer Php - Fatal编程技术网

Php Zend Framework Composer软件包

Php Zend Framework Composer软件包,php,zend-framework,package,composer-php,Php,Zend Framework,Package,Composer Php,我想将依赖项添加到zendframework/zend db包中,因此我将其添加到我的composer.json中: "repositories": [ { "type": "composer", "url": "http://packages.zendframework.com/" } ], "require": { "php": ">=5.3.2", "symfony/class-loader": "dev-maste

我想将依赖项添加到
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

知道为什么吗?

这是zend github中来自zend db的数据。根据该文件,zend db没有任何依赖项

这可能是因为您正试图从dev master下载一个包,而dev master的composer.json中存在错误匹配

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


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

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

  • 控制器
  • 配置
  • 滤器
  • Json
  • 加载器(对于自动加载,由于composer autoloader的原因,我认为这可能没有必要)
  • Uri
  • 看法
  • 野火
这些软件包可能有其他依赖项,因此下载大小不同。无论如何,正如King所解释的,Zend Framework 2.0与版本1.9不同,可能这不适用于2.0,正如这里所解释的,ZF2现在提供了一个包含所有模块的composer存储库

要将回购添加到您的包中,请执行以下操作:

"repositories": [
    {
        "type": "composer",
        "url": "http://packages.zendframework.com/"
    }
],
从这里开始,您可以单独添加包:

"require": {
    "zendframework/zend-config": "2.0.*",
    "zendframework/zend-http": "2.0.*"
},
您只需要指定所需的包,如果它们有依赖项,则将由compser解析


尽管这似乎不起作用……

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

据我所知,只有ZF2可以通过composer使用,db组件被重写,因此1.9的依赖关系并不重要。(关于您的编辑):链接的
composer.json
将(self.)版本设置为
2.0.
(请参阅底部的
分支别名
-指令)@nicky de maeyer。我在json文件中有repo,只添加了zend db,但整个框架都被拉了进来。这就是你说它现在不起作用的意思吗?