Req #62325 [Com]: Debug Backtrace gives no handle to anonymous functions
| From: | anfurny22 at gmail dot com | Date: | Sun, 17 Jun 2012 11:22:19 +0000 |
| Subject: | Req #62325 [Com]: Debug Backtrace gives no handle to anonymous functions | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-171319@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=62325&edit=1
ID: 62325
Comment by: anfurny22 at gmail dot com
Reported by: anfurny22 at gmail dot com
Summary: Debug Backtrace gives no handle to anonymous
functions
Status: Open
Type: Feature/Change Request
Package: *General Issues
Operating System: Windows
PHP Version: 5.4.4
Block user comment: N
Private report: N
New Comment:
I agree the key name is ambiguous, perhaps 'function_reference' instead of
'reference'.
I'm unclear what you're saying about "returning" a reflection object, please
elaborate.
Previous Comments:
------------------------------------------------------------------------
[2012-06-17 11:01:14] hanskrentel at yahoo dot de
I think the naming can be improved. Reference is quite generic, why not to return
some reflection object if asked for?
------------------------------------------------------------------------
[2012-06-14 17:25:19] anfurny22 at gmail dot com
Description:
------------
Debug backtrace traditionally gives several pieces of information about the call
stack, including file name, line number, and function name. However, with
anonymous functions it simply gives "{closure}". This makes anonymous functions
received through debug_backtrace inaccesible through reflection because there is
no reference to them.
I propose that debug_backtrace always provide an additional key "reference" which
is a reference to the actual function. This will let the function be called or
provided to the reflection API.
Test script:
---------------
<?PHP
$anon = function() {
$name = (debug_backtrace[0]['name']); // yields {closure}
$refl = new ReflectionFunction($name); // works great except with closures!
echo $refl->getDocComment(); // fails
}
$anon();
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62325&edit=1