Req #76611 [Com]: Printing DOMNode shows fake "(object value omitted)" strings
| From: | naitsirch at e dot mail dot de | Date: | Fri, 14 Sep 2018 08:55:11 +0000 |
| Subject: | Req #76611 [Com]: Printing DOMNode shows fake "(object value omitted)" strings | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-217043@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76611&edit=1
ID: 76611
Comment by: naitsirch at e dot mail dot de
Reported by: chealer at gmail dot com
Summary: Printing DOMNode shows fake "(object value omitted)"
strings
Status: Open
Type: Feature/Change Request
Package: DOM XML related
PHP Version: 7.2.7
Block user comment: N
Private report: N
New Comment:
Yes, this is verbose, but otherwise it is hard to debug code that uses those objects. People who
debug with print_r/var_dump can select concrete properties/attributes of the objects to get less
output.
Please merge the patch.
Previous Comments:
------------------------------------------------------------------------
[2018-07-21 13:21:39] cmb@php.net
Changing this behavior would be as simple as applying this
patch[1], but I'm not sure that would be an improvement since the
output would be extremly verbose[2].
[1] <https://gist.github.com/cmb69/76137ddce3a084c2893faa73be4c038f#file-verbose-diff>
[2] <https://gist.github.com/cmb69/76137ddce3a084c2893faa73be4c038f#file-out-txt>
------------------------------------------------------------------------
[2018-07-11 17:45:26] chealer at gmail dot com
Description:
------------
The DOM extension's DOMNode class seems to hide object properties when DOMNode objects are
displayed.
For example, the following shows that print_r() presents the lastChild property as a string
"(object value omitted)", but also that this property is in fact a DOMElement object when
directly printed.
This affects Xdebug and makes it painful to debug the DOM extension.
https://3v4l.org/NFpRS shows that this persists in 7.3.0 alpha
1.
Test script:
---------------
<?php
$dom = new DOMDocument();
$dom->loadHTML('<h1>Configuration</h1>', LIBXML_HTML_NOIMPLIED |
LIBXML_HTML_NODEFDTD);
print_r($dom);
print_r($dom->lastChild);
Actual result:
--------------
DOMDocument Object
(
[doctype] =>
[implementation] => (object value omitted)
[documentElement] => (object value omitted)
[actualEncoding] =>
[encoding] =>
[xmlEncoding] =>
[standalone] => 1
[xmlStandalone] => 1
[version] =>
[xmlVersion] =>
[strictErrorChecking] => 1
[documentURI] =>
[config] =>
[formatOutput] =>
[validateOnParse] =>
[resolveExternals] =>
[preserveWhiteSpace] => 1
[recover] =>
[substituteEntities] =>
[nodeName] => #document
[nodeValue] =>
[nodeType] => 13
[parentNode] =>
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[attributes] =>
[ownerDocument] =>
[namespaceURI] =>
[prefix] =>
[localName] =>
[baseURI] =>
[textContent] => Configuration
)
DOMElement Object
(
[tagName] => h1
[schemaTypeInfo] =>
[nodeName] => h1
[nodeValue] => Configuration
[nodeType] => 1
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[attributes] => (object value omitted)
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => h1
[baseURI] =>
[textContent] => Configuration
)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76611&edit=1