|
@@ -14,6 +14,7 @@ namespace Symfony\Bundle\FrameworkBundle\DataCollector;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpKernel\DataCollector\RequestDataCollector as BaseRequestDataCollector;
|
|
use Symfony\Component\HttpKernel\DataCollector\RequestDataCollector as BaseRequestDataCollector;
|
|
|
|
+use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
|
|
|
|
|
|
/**
|
|
/**
|
|
* RequestDataCollector.
|
|
* RequestDataCollector.
|
|
@@ -22,6 +23,13 @@ use Symfony\Component\HttpKernel\DataCollector\RequestDataCollector as BaseReque
|
|
*/
|
|
*/
|
|
class RequestDataCollector extends BaseRequestDataCollector
|
|
class RequestDataCollector extends BaseRequestDataCollector
|
|
{
|
|
{
|
|
|
|
+ protected $controllers;
|
|
|
|
+
|
|
|
|
+ public function __construct()
|
|
|
|
+ {
|
|
|
|
+ $this->controllers = new \SplObjectStorage();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* {@inheritdoc}
|
|
* {@inheritdoc}
|
|
*/
|
|
*/
|
|
@@ -30,6 +38,24 @@ class RequestDataCollector extends BaseRequestDataCollector
|
|
parent::collect($request, $response, $exception);
|
|
parent::collect($request, $response, $exception);
|
|
|
|
|
|
$this->data['route'] = $request->attributes->get('_route');
|
|
$this->data['route'] = $request->attributes->get('_route');
|
|
|
|
+ $this->data['controller'] = 'n/a';
|
|
|
|
+
|
|
|
|
+ if (isset($this->controllers[$request])) {
|
|
|
|
+ $controller = $this->controllers[$request];
|
|
|
|
+ if (is_array($controller)) {
|
|
|
|
+ $this->data['controller'] = array(get_class($controller[0]), $controller[1]);
|
|
|
|
+ } elseif ($controller instanceof \Closure) {
|
|
|
|
+ $this->data['controller'] = 'Closure';
|
|
|
|
+ } else {
|
|
|
|
+ $this->data['controller'] = (string) $controller ?: 'n/a';
|
|
|
|
+ }
|
|
|
|
+ unset($this->controllers[$request]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function onCoreController(FilterControllerEvent $event)
|
|
|
|
+ {
|
|
|
|
+ $this->controllers[$event->getRequest()] = $event->getController();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -41,4 +67,14 @@ class RequestDataCollector extends BaseRequestDataCollector
|
|
{
|
|
{
|
|
return $this->data['route'];
|
|
return $this->data['route'];
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Gets the controller.
|
|
|
|
+ *
|
|
|
|
+ * @return string The controller as a string
|
|
|
|
+ */
|
|
|
|
+ public function getController()
|
|
|
|
+ {
|
|
|
|
+ return $this->data['controller'];
|
|
|
|
+ }
|
|
}
|
|
}
|