Edit report at https://bugs.php.net/bug.php?id=64007&edit=1

 ID:                 64007
 Updated by:         larue...@php.net
 Reported by:        lisachenko dot it at gmail dot com
 Summary:            There is an ability to create instance of Generator
                     by hand
-Status:             Closed
+Status:             Assigned
 Type:               Bug
 Package:            Reflection related
 Operating System:   Windows 7 x64
 PHP Version:        5.5.0alpha2
-Assigned To:        nikic
+Assigned To:        laruence
 Block user comment: N
 Private report:     N

 New Comment:

The fix for this bug has been committed.

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/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------
[2013-01-19 09:02:23] larue...@php.net

Automatic comment on behalf of laruence
Revision: 
http://git.php.net/?p=php-src.git;a=commit;h=f7b99c481d0a943d922e99ad9afa82c45193030e
Log: Fixed bug #64007 (There is an ability to create instance of Generator by 
hand).

------------------------------------------------------------------------
[2013-01-17 18:21:38] ni...@php.net

@laruence: Imho `new Foo($bar)` and `(new 
ReflectionClass('Foo'))->newInstance($bar)` should behave the same. So if the 
constructor throws a fatal error then the constructor invoked through 
reflection should also throw a fatal error.

If reflection doesn't go through get_constructor then it won't work correctly 
if that handler is overloaded. It just works so well right now because nearly 
noone overrides get_constructor.

------------------------------------------------------------------------
[2013-01-17 10:40:17] larue...@php.net

@nikic, after a digging,  I think it's better to make a private constructor for 
generators. here is the reason:

refelction_class->newInstance used to throw exception while the constructor is 
non-public..

if change to get_constructor,  boom~  FATAL ERROR.

------------------------------------------------------------------------
[2013-01-17 10:07:24] larue...@php.net

agree, I will make a patch

------------------------------------------------------------------------
[2013-01-16 12:50:56] ni...@php.net

Looks like a bug in Reflection. It should get the constructor through the 
`get_constructor` handler, not from the class property.

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


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

    https://bugs.php.net/bug.php?id=64007


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

Reply via email to