class SpecialAttributesRouteSubscriber in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/EventSubscriber/SpecialAttributesRouteSubscriber.php \Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
- 9 core/lib/Drupal/Core/EventSubscriber/SpecialAttributesRouteSubscriber.php \Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
Provides a route subscriber which checks for invalid pattern variables.
Hierarchy
- class \Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber extends \Drupal\Core\Routing\RouteSubscriberBase
Expanded class hierarchy of SpecialAttributesRouteSubscriber
1 file declares its use of SpecialAttributesRouteSubscriber
- SpecialAttributesRouteSubscriberTest.php in core/
tests/ Drupal/ Tests/ Core/ EventSubscriber/ SpecialAttributesRouteSubscriberTest.php
1 string reference to 'SpecialAttributesRouteSubscriber'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses SpecialAttributesRouteSubscriber
File
- core/
lib/ Drupal/ Core/ EventSubscriber/ SpecialAttributesRouteSubscriber.php, line 13
Namespace
Drupal\Core\EventSubscriberView source
class SpecialAttributesRouteSubscriber extends RouteSubscriberBase {
/**
* {@inheritdoc}
*/
protected function alterRoutes(RouteCollection $collection) {
$special_variables = [
'system_path',
'_legacy',
'_raw_variables',
RouteObjectInterface::ROUTE_OBJECT,
RouteObjectInterface::ROUTE_NAME,
'_content',
'_controller',
'_form',
];
foreach ($collection
->all() as $name => $route) {
if ($not_allowed_variables = array_intersect($route
->compile()
->getVariables(), $special_variables)) {
$reserved = implode(', ', $not_allowed_variables);
trigger_error(sprintf('Route %s uses reserved variable names: %s', $name, $reserved), E_USER_WARNING);
}
}
}
/**
* Delegates the route altering to self::alterRoutes().
*
* @param \Drupal\Core\Routing\RouteBuildEvent $event
* The route build event.
*/
public function onAlterRoutes(RouteBuildEvent $event) {
$collection = $event
->getRouteCollection();
$this
->alterRoutes($collection);
}
}