使用Composer安装Zend 2,自动加载器无法正常工作

时间:2014-11-25 16:08:04

标签: zend-framework2 composer-php include-path

我正在使用Composer为PHP项目安装包。我已成功完成Google V3 API的操作; Composer正确安装了软件包,设置了Composer自动加载器,我可以通过在项目源代码中包含以下语句来引用Google API类:

require_once 'vendor/autoload.php';

我试图对一些Zend 2软件包做同样的事情。 Composer成功下载并安装了所需的Zend软件包,但当我尝试在代码中引用类时,Composer供应商/自动加载不起作用。 具体来说,Zend类在Composer生成的vendor / composer / autoload_namespaces.php文件中引用,但它们未在vendor / composer / autoload_classmap.php中引用,并且Zend也未在vendor / composer / include_paths.php中引用通过Composer(与正确引用的Google API不同)。

任何人都可以了解为什么Zend没有使用Composer自动加载器,或者这是预期的行为,我需要为Zend使用不同的自动加载机制?

2 个答案:

答案 0 :(得分:0)

由于Zend Framework遵循PSR标准,因此只需要在autoload_namespaces.php中配置名称空间。这里没有错......

答案 1 :(得分:0)

感谢您的回复。 我最终发现问题是由于我没有使用完全限定的命名空间来引用Zend类,即。

$twitter = new ZendService\Twitter\Twitter($config);

而不是

$twitter = new Twitter($config);

我不明白我通过Composer使用的不同库使用不同的类加载方法,例如Composer在autoload_classmap.php中为Google Client API生成条目,但在autoload_namespacep中为Zend生成条目,在autoload_classmap中没有任何条目,所以我认为我在Composer安装时做错了。