Symfony app_dev.php install \ DOMDomain错误

时间:2014-02-20 20:05:50

标签: javascript php symfony

我在VMware播放器下的CentOS下的localhost上安装了Symfony。 (Windows 7,32位) 我的PHP版本是5.3.3。 CentOS是6.5。 VMware播放器是6.0.1。

当我尝试与localhost/Symfony/web/app_dev.php连接时,我收到以下错误

  

ClassNotFoundException:尝试从中加载类“DOMDocument”   全局命名空间   /var/www/html/Symfony/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php   第47行。

您是否忘记了此课程的使用声明?

第47行是

$dom = new \DOMDocument();

当我grep“DOMDocument”时,我获得了102次点击。

大多数点击显示

$dom = new \DOMDocument();

$dom = new DOMDocument(); 

我之前在外部服务器上按照相同的脚本安装了Symfony,并且能够毫无问题地运行app_dev.php。 (FreeBSD的)

new \DOMDocument();new DOMDocument();之间有什么区别? 我是JavaScript和PHP的新手。有谁知道我应该怎么做才能纠正这个问题?或者有关如何解决问题的一些线索?

2 个答案:

答案 0 :(得分:11)

在CentOS 6.5上运行 yum install php-xml 为我解决了这个问题。

答案 1 :(得分:3)

从另一个命名空间内部从全局命名空间加载类时,需要使用反斜杠(new \DomDocument())。换句话说,如果您在文件顶部使用namespace <something>,则必须使用new \DomDocument()从全局命名空间加载DomDocument。如果您在全局命名空间中(默认情况下,如果您没有显式声明命名空间),则可以直接使用new DomDocument()

如果你用反斜杠和没有反斜杠得到错误,那是因为你错过了PHP扩展:php-xml。只需将extension=dom.so添加到您的php.ini即可。默认情况下,扩展名与PHP捆绑在一起。

运行web / config.php以检查缺少的内容。