ID:               28699
 Updated by:       [EMAIL PROTECTED]
 Reported By:      D dot Kingma at jool dot nl
 Status:           Closed
 Bug Type:         Zend Engine 2 problem
-Operating System: Windows XP
+Operating System: *
 PHP Version:      5.0.0RC3
-Assigned To:      
+Assigned To:      helly
 New Comment:

BTW: The '/**' is another issue (which i also fixed). Please fill in
separate bug reports for separate things in the future.


Previous Comments:
------------------------------------------------------------------------

[2004-06-10 13:37:57] [EMAIL PROTECTED]

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

------------------------------------------------------------------------

[2004-06-10 13:10:18] D dot Kingma at jool dot nl

Also in RC3

------------------------------------------------------------------------

[2004-06-10 13:09:05] D dot Kingma at jool dot nl

reproduction code:

<?php
class testReflection{
        var $CAPS;
        var $lower;

}
//throws an exception, while it should not
$x=new reflectionProperty('testReflection','CAPS');
//works as expected
$y=new reflectionProperty('testReflection','lower');

/* Same for when you reference an object, instead of giving the name of
the class */
$test=new testReflection();
//throws an exception, while it should not
$x2=new reflectionProperty($test,'CAPS');
//works as expected
$y2=new reflectionProperty($test,'lower');
?>


Possible solution for the CAPS problem:

The properties hash table ce->properties_info probably keeps the
property names in the origanal string format (didn't change 

it with tolower()). So the fix will probably be to remove the
zend_str_tolower_copy (line 2729)

[zend_reflection_api.c]
2728    lcname = do_alloca(name_len + 1);
2729    zend_str_tolower_copy(lcname, name_str, name_len);
2730    if (zend_hash_find(&ce->properties_info, lcname, name_len + 1,
(void **) &property_info) == FAILURE) {
2731            free_alloca(lcname);
2732            zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, 
2733                    "Property %s::$%s does not exist", ce->name, name_str);
2734            return;
2735    }

------------------------------------------------------------------------

[2004-06-09 11:05:08] D dot Kingma at jool dot nl

changed category to 'Zend engine 2 problem'

------------------------------------------------------------------------

[2004-06-08 22:23:49] D dot Kingma at jool dot nl

There is also another small bug: When the comment above a method starts
with '/** ' (notice the space at the end) the getDocComments() function
will return an empty string. When you remove the trailing space, all
works fine.

And finally a small functionality request: please add the
getDocComments() function to the reflectionProperty class, since the
description of the var with the @var tag is also a well known
functionality of packages like javadoc/phpdoc and it would come in
handy if you cannot only get te description of methods, classes and
functions but also the defined properties of the class.

Thnx
David

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/28699

-- 
Edit this bug report at http://bugs.php.net/?id=28699&edit=1

Reply via email to