ID: 49647
Updated by: [email protected]
Reported By: [email protected]
Status: Feedback
Bug Type: Reflection related
Operating System: Linux
PHP Version: 5.3.0
New Comment:
Yes, ext/dom is enabled ---------------------------------------------:
$ php -i | grep -i dom
dom
DOM/XML => enabled
DOM/XML API Version => 20031129
I'll modify the test script to verify it also ----------------------:
<?php
echo 'Verify DOM is loaded:' . PHP_EOL;
$r1 = new ReflectionClass('DOMElement');
var_dump($r1->getName());
echo PHP_EOL;
echo 'Does DOMUserData exist?' . PHP_EOL;
$r2 = new ReflectionClass('DOMUserData');
var_dump($r2->getName());
?>
With expected output ------------------------------------------------:
Verify DOM is loaded:
string(10) "DOMElement"
Does DOMUserData exist?
string(11) "DOMUserData"
And actual output ---------------------------------------------------:
Verify DOM is loaded:
string(10) "DOMElement"
Does DOMUserData exist?
PHP Fatal error: Uncaught exception 'ReflectionException' with message
'Class DOMUserData does not exist' in
/opt/phpversions/php-bin/php-5.3.0/test.php:8
Stack trace:
#0 /opt/phpversions/php-bin/php-5.3.0/test.php(8):
ReflectionClass->__construct('DOMUserData')
#1 {main}
thrown in /opt/phpversions/php-bin/php-5.3.0/test.php on line 8
ReflectionException: Class DOMUserData does not exist in
/opt/phpversions/php-bin/php-5.3.0/test.php on line 8
Call Stack:
0.0002 624160 1. {main}()
/opt/phpversions/php-bin/php-5.3.0/test.php:0
0.0004 625432 2. ReflectionClass->__construct()
/opt/phpversions/php-bin/php-5.3.0/test.php:8
This bug report was prompted by PEAR bug #14640, where phpDocumenter
encounters the same ReflectionException when attempting to document the
DOMElement parent class of a user's code class that extends DOMElement.
Declaring an empty dummy DOMUserData class in the user's code solves the
issue.
Previous Comments:
------------------------------------------------------------------------
[2009-09-24 10:03:36] [email protected]
Is ext/dom enabled in your build? And loaded? :)
------------------------------------------------------------------------
[2009-09-23 22:00:48] [email protected]
Description:
------------
Reflection actitivy against a child of DOMElement can result in:
"ReflectionException: Class DOMUserData does not exist"
presumably due to dom_node_get_user_data in ext/dom/node.c.
The actual class does not appear to exist, although the method shows it
as a datatype for a parameter.
Reproduce code:
---------------
<?php
$r2 = new ReflectionClass('DOMUserData');
echo r2->getName();
?>
Expected result:
----------------
DOMUserData
Actual result:
--------------
ReflectionException: Class DOMUserData does not exist
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49647&edit=1