簡體   English   中英

致命錯誤:Zend Server CE更新后找不到DOMDocument

[英]Fatal Error: DOMDocument not found after Zend Server CE Update

我正在使用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是導致此錯誤的可能原因。 但我找不到任何指向這個的東西。

簡而言之,它引入了名稱空間(由ZF2非常大量使用的PHP 5.3的特性 - 但不是ZF 1.x)導致了這個錯誤。 有了這條線......

$dom = new DOMDocument(...)

... ZF僅為此類檢查當前導入的命名空間。 它導致失敗,因為DOMDocument類實際上屬於全局命名空間。

當您看到原因時,解決方案很簡單:在類名前面使用global namespace specifier - \\ symbol - 。 像這樣:

$dom = new \DOMDocument(...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM