diff --git a/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php b/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php index be898210af..934c8477a5 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php @@ -133,7 +133,13 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter } } } elseif ($controller instanceof \Closure) { - $this->data['controller'] = 'Closure'; + $r = new \ReflectionFunction($controller); + $this->data['controller'] = array( + 'class' => $r->getName(), + 'method' => null, + 'file' => $r->getFilename(), + 'line' => $r->getStartLine(), + ); } else { $this->data['controller'] = (string) $controller ?: 'n/a'; } diff --git a/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php b/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php index 7e31d0626d..133d33a7a3 100644 --- a/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php @@ -81,7 +81,12 @@ class RequestDataCollectorTest extends \PHPUnit_Framework_TestCase array( 'Closure', function() { return 'foo'; }, - 'Closure', + array( + 'class' => __NAMESPACE__ . '\{closure}', + 'method' => null, + 'file' => __FILE__, + 'line' => __LINE__ - 5, + ), ), array(