class RouterDataCollector
@author Fabien Potencier <fabien@symfony.com>
Hierarchy
- class \Symfony\Component\HttpKernel\DataCollector\DataCollector implements \Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface
- class \Symfony\Component\HttpKernel\DataCollector\RouterDataCollector extends \Symfony\Component\HttpKernel\DataCollector\DataCollector
Expanded class hierarchy of RouterDataCollector
File
-
vendor/
symfony/ http-kernel/ DataCollector/ RouterDataCollector.php, line 22
Namespace
Symfony\Component\HttpKernel\DataCollectorView source
class RouterDataCollector extends DataCollector {
/**
* @var \SplObjectStorage<Request, callable>
*/
protected \SplObjectStorage $controllers;
public function __construct() {
$this->reset();
}
/**
* @final
*/
public function collect(Request $request, Response $response, ?\Throwable $exception = null) : void {
if ($response instanceof RedirectResponse) {
$this->data['redirect'] = true;
$this->data['url'] = $response->getTargetUrl();
if ($this->controllers
->contains($request)) {
$this->data['route'] = $this->guessRoute($request, $this->controllers[$request]);
}
}
unset($this->controllers[$request]);
}
public function reset() : void {
$this->controllers = new \SplObjectStorage();
$this->data = [
'redirect' => false,
'url' => null,
'route' => null,
];
}
protected function guessRoute(Request $request, string|object|array $controller) : string {
return 'n/a';
}
/**
* Remembers the controller associated to each request.
*/
public function onKernelController(ControllerEvent $event) : void {
$this->controllers[$event->getRequest()] = $event->getController();
}
/**
* @return bool Whether this request will result in a redirect
*/
public function getRedirect() : bool {
return $this->data['redirect'];
}
public function getTargetUrl() : ?string {
return $this->data['url'];
}
public function getTargetRoute() : ?string {
return $this->data['route'];
}
public function getName() : string {
return 'router';
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
DataCollector::$cloner | private | property | |||
DataCollector::$data | protected | property | |||
DataCollector::cloneVar | protected | function | Converts the variable into a serializable Data instance. | ||
DataCollector::getCasters | protected | function | 1 | ||
DataCollector::serialize | final protected | function | @internal to prevent implementing \Serializable | ||
DataCollector::unserialize | final protected | function | @internal to prevent implementing \Serializable | ||
DataCollector::__sleep | public | function | 1 | ||
DataCollector::__wakeup | public | function | 1 | ||
RouterDataCollector::$controllers | protected | property | |||
RouterDataCollector::collect | public | function | @final | Overrides DataCollectorInterface::collect | |
RouterDataCollector::getName | public | function | Returns the name of the collector. | Overrides DataCollectorInterface::getName | |
RouterDataCollector::getRedirect | public | function | |||
RouterDataCollector::getTargetRoute | public | function | |||
RouterDataCollector::getTargetUrl | public | function | |||
RouterDataCollector::guessRoute | protected | function | |||
RouterDataCollector::onKernelController | public | function | Remembers the controller associated to each request. | ||
RouterDataCollector::reset | public | function | Overrides DataCollector::reset | ||
RouterDataCollector::__construct | public | function |