注意:未定义的属性:DOMDocument :: $ documentElement

pje*_*han 3 domdocument symfony symfony-3.2

我最近重新开了一个旧的(1年)Symfony项目,我在每一页都有错误(我不记得一年前有这个问题):

[exception] 500 | Internal Server Error | Symfony\Component\Config\Exception\FileLoaderLoadException
/var/www/[...]/wdt.xml

ContextErrorException: Notice: Undefined property: DOMDocument::$documentElement
Run Code Online (Sandbox Code Playgroud)

如果我清除缓存,则错误消失但是一旦我编辑并保存文件,错误就会再次出现.该项目使用Symfony 2.8,我更新到Symfony 3.2,但它没有解决问题.

我不认为这个问题与wdt.xml文件有关,我认为它可能与我的笔记本电脑配置有关.

我真的不知道从哪里开始调查,所以欢迎任何建议!

编辑1:
我实际上遇到了与我几天前创建的另一个项目相同的问题.该项目不使用任何其他捆绑包,我只创建了5个实体并生成了MySQL数据库.

编辑2:
经过一些研究,我决定创建一个新的Ubuntu VM并测试一个新的Symfony项目,它只是完美的工作,所以它必须与我的笔记本电脑上的配置有关.

编辑3:
经过一些更多的测试,这是我添加print_r($ dom)时得到的; 在文件XmlUtils.php(vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php)第59行:

Ubuntu VM(没有错误):

DOMDocument Object ( [doctype] => [implementation] => (object value omitted) [documentElement] => (object value omitted) [actualEncoding] => [encoding] => [xmlEncoding] => [standalone] => 1 [xmlStandalone] => 1 [version] => 1.0 [xmlVersion] => 1.0 [strictErrorChecking] => 1 [documentURI] => /var/www/my_project/web/ [config] => [formatOutput] => [validateOnParse] => 1 [resolveExternals] => [preserveWhiteSpace] => 1 [recover] => [substituteEntities] => [nodeName] => #document [nodeValue] => [nodeType] => 9 [parentNode] => [childNodes] => (object value omitted) [firstChild] => (object value omitted) [lastChild] => (object value omitted) [previousSibling] => [attributes] => [ownerDocument] => [namespaceURI] => [prefix] => [localName] => [baseURI] => /var/www/my_project/web/ [textContent] => %kernel.charset% %kernel.default_locale% )
Run Code Online (Sandbox Code Playgroud)

Ubuntu笔记本电脑(错误):

DOMDocument Object ( [validateOnParse] => 1 [nodeName] => #document [nodeValue] => [nodeType] => 9 [parentNode] => [childNodes] => (object value omitted) [firstChild] => (object value omitted) [lastChild] => (object value omitted) [previousSibling] => [attributes] => [ownerDocument] => [namespaceURI] => [prefix] => [localName] => [baseURI] => /var/www/lab/symfony/booklib/web/ [textContent] => %kernel.charset% %kernel.default_locale% )
Run Code Online (Sandbox Code Playgroud)

看起来我的笔记本电脑上有一些缺失的信息......

所以基本上,函数$ dom-> loadXML在我的笔记本电脑环境和VM内部都没有返回相同的值...任何想法为什么?

小智 7

我用php7.0.15安装了Ubuntu 16.04,我通过删除php-xdebug扩展来修复错误.

sudo apt-get purge php-xdebug