Bug #55031 [Opn->Fbk]: php exits (with code 0) on 'new ReflectionClass(X)'
| From: | felipe@php.net | Date: | Fri, 10 Jun 2011 22:46:14 +0000 |
| Subject: | Bug #55031 [Opn->Fbk]: php exits (with code 0) on 'new ReflectionClass(X)' | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-161291@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=55031&edit=1
ID: 55031
Updated by: felipe@php.net
Reported by: ajrattink at correct dot net
Summary: php exits (with code 0) on 'new ReflectionClass(X)'
-Status: Open
+Status: Feedback
Type: Bug
Package: Reflection related
Operating System: Linux 2.4.25
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
Check your autoload function.
Previous Comments:
------------------------------------------------------------------------
[2011-06-10 21:00:29] ajrattink at correct dot net
Description:
------------
Creating a working example failed. And we have a codebase of >10MB phpcode.
But these are the exact conditions of the failure:
We have a class B that extends A. Both have a method f() but they differ such that a syntaxcheck
would say this:
Strict Standards: Declaration of B::f() should be compatible with that of A::f().
However B is loaded using __autoload('B'), normally.
Now we say (without B loaded)
$a = new ReflectionClass('B');
And php exits with code 0. No logging, no error, no Exception, no SEGV.
some added debugprints in reflection_class_object_ctor() show this:
ARA: reflection_class_object_ctor entry
ARA: calling getThis
ARA: name:'MO_KieskeurigExporter', calling zend_lookup_class
And I never return from zend_lookup_class!
Unfortunately putting a print in there probably floods the system here.
Working around the bug is much easier than debugging it. But maybe someone
more knowledgeable than me knows where that exit(0); call is parked??
Test script:
---------------
Not reproducable.
Expected result:
----------------
I accept an ReflectionException to be thrown. This does happen if I change the classname, so it
truly cannot be found. Also, if I fix the method to match the superclass' one, everything is
fine as well.
Actual result:
--------------
php exits with code 0.
However a minimal example attempt worked perfectly ok.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=55031&edit=1