class RouteMethodSubscriber
Same name in other branches
- 9 core/lib/Drupal/Core/EventSubscriber/RouteMethodSubscriber.php \Drupal\Core\EventSubscriber\RouteMethodSubscriber
- 8.9.x core/lib/Drupal/Core/EventSubscriber/RouteMethodSubscriber.php \Drupal\Core\EventSubscriber\RouteMethodSubscriber
- 10 core/lib/Drupal/Core/EventSubscriber/RouteMethodSubscriber.php \Drupal\Core\EventSubscriber\RouteMethodSubscriber
Provides a default value for the HTTP method restriction on routes.
Most routes will only deal with GET and POST requests, so we restrict them to those two if nothing else is specified. This is necessary to give other routes a chance during the route matching process when they are listening for example to DELETE requests on the same path. A typical use case are REST web service routes that use the full spectrum of HTTP methods.
Hierarchy
- class \Drupal\Core\EventSubscriber\RouteMethodSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of RouteMethodSubscriber
File
-
core/
lib/ Drupal/ Core/ EventSubscriber/ RouteMethodSubscriber.php, line 18
Namespace
Drupal\Core\EventSubscriberView source
class RouteMethodSubscriber implements EventSubscriberInterface {
/**
* Sets a default value of GET|POST for the _method route property.
*
* @param \Drupal\Core\Routing\RouteBuildEvent $event
* The event containing the build routes.
*/
public function onRouteBuilding(RouteBuildEvent $event) {
foreach ($event->getRouteCollection() as $route) {
$methods = $route->getMethods();
if (empty($methods)) {
$route->setMethods([
'GET',
'POST',
]);
}
}
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() : array {
// Set a higher priority to ensure that routes get the default HTTP methods
// as early as possible.
$events[RoutingEvents::ALTER][] = [
'onRouteBuilding',
5000,
];
return $events;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
RouteMethodSubscriber::getSubscribedEvents | public static | function | |
RouteMethodSubscriber::onRouteBuilding | public | function | Sets a default value of GET|POST for the _method route property. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.