On Fri, 2008-07-04 at 11:31 +0200, Lars Strojny wrote: > Hi Johannes, > > Am Freitag, den 04.07.2008, 11:18 +0200 schrieb Johannes Schlüter: > > Now such a check isn't possible, all reflection information on the > > callback I can get is that it is an object of type Closure having a > > method __invoke() with zero required parameters. There's no further > > information on the function, so probably we need a ReflectionClosure > > class or something > > Couldn't ReflectionFunction play that role. Classes and instances with a > defined "__invoke" method can be reflected with ReflectionFunction?
At the moment: not enough. $ php -r 'echo new ReflectionObject(function ($a, $b) use ($c) {});' Object of class [ <internal> final class Closure ] { - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Dynamic properties [0] { } - Methods [1] { Method [ <internal> public method __invoke ] { } } } it's not mentioning the parameters or the used variable, and yes, it's a tiny issue which can, most likely, fixed within an hour or so but I guess we'll have many more of that kind: Tiny issues which end up in discussions about taste ("should we add a new class or simply add special treatment in ReflectionMethod for Closure::__invoke?") and all this stuff can delay things... That's the risk I'm seeing. johannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php