致命错误:Zend Server CE更新后找不到DOMDocument

时间:2012-11-10 15:37:12

标签: php windows-7 zend-framework2 domdocument zend-server-ce

我正在使用Windows 7(64位)系统上的Zend Server CE。

我正在使用Zend Framework 2.0开发一个网站。在这个网站中,我使用DOMDocument来分析外部网站(由URL提供)。

我使用Zend Framework 1.12和Zend Server CE 4(PHP 5.2)开始了这个项目。现在我安装了Zend Server CE 5.6.0(apache2.2,PHP 5.3.14,ZF2-Support)。我用ZF2.0重建我的项目。一切都很好......除了一个功能。

当我尝试实例化DOMDocument时,我得到了这个错误消息(php-error.log):

Fatal error: Class 'Application\Controller\DOMDocument' not found in
_Path_\module\Application\src\Application\Controller\SearchbarController.php on line 81

使用PHP 5.2(ZF 1.12)和Zend Server CE 4,此功能完美运行。但是现在......没有任何改变,它会抛出这个错误。

dom-extension和xml-extension在PHP 5.3中内置。我检查了phpinfo和我的php.ini,这些扩展正在运行。

我读过,我应该安装php-xml。但dom,xml和libxml正在运行......为什么我要重新安装它们?

我不知道为什么升级Zend Server CE后无法实例化DOMDocument。可能是,ZF2.0是导致此错误的可能原因。但我找不到任何指向这个的东西。

1 个答案:

答案 0 :(得分:4)

简而言之,它引入了名称空间(ZF2非常频繁使用的PHP 5.3的功能 - 但不是ZF 1.x)导致了这个错误。有了这条线......

$dom = new DOMDocument(...)

...仅ZF为此类检查当前导入的命名空间。它导致失败,因为DOMDocument类实际上属于全局命名空间。

解决方案很简单,当您看到原因时:在类名前面使用global namespace specifier - \符号。像这样:

$dom = new \DOMDocument(...)