function RouteBuilder::rebuild
Same name in this branch
- main core/lib/Drupal/Core/ProxyClass/Routing/RouteBuilder.php \Drupal\Core\ProxyClass\Routing\RouteBuilder::rebuild()
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/ProxyClass/Routing/RouteBuilder.php \Drupal\Core\ProxyClass\Routing\RouteBuilder::rebuild()
- 11.x core/lib/Drupal/Core/Routing/RouteBuilder.php \Drupal\Core\Routing\RouteBuilder::rebuild()
- 10 core/lib/Drupal/Core/ProxyClass/Routing/RouteBuilder.php \Drupal\Core\ProxyClass\Routing\RouteBuilder::rebuild()
- 10 core/lib/Drupal/Core/Routing/RouteBuilder.php \Drupal\Core\Routing\RouteBuilder::rebuild()
- 9 core/lib/Drupal/Core/ProxyClass/Routing/RouteBuilder.php \Drupal\Core\ProxyClass\Routing\RouteBuilder::rebuild()
- 9 core/lib/Drupal/Core/Routing/RouteBuilder.php \Drupal\Core\Routing\RouteBuilder::rebuild()
- 8.9.x core/lib/Drupal/Core/ProxyClass/Routing/RouteBuilder.php \Drupal\Core\ProxyClass\Routing\RouteBuilder::rebuild()
- 8.9.x core/lib/Drupal/Core/Routing/RouteBuilder.php \Drupal\Core\Routing\RouteBuilder::rebuild()
Rebuilds the route information and dumps it.
Return value
bool Returns TRUE if the rebuild succeeds, FALSE otherwise.
Overrides RouteBuilderInterface::rebuild
1 call to RouteBuilder::rebuild()
- RouteBuilder::rebuildIfNeeded in core/
lib/ Drupal/ Core/ Routing/ RouteBuilder.php
File
-
core/
lib/ Drupal/ Core/ Routing/ RouteBuilder.php, line 112
Class
- RouteBuilder
- Managing class for rebuilding the router table.
Namespace
Drupal\Core\RoutingCode
public function rebuild() {
if ($this->building) {
throw new \RuntimeException('Recursive router rebuild detected.');
}
if (!$this->lock
->acquire('router_rebuild')) {
// Wait for another request that is already doing this work.
// We choose to block here since otherwise the routes might not be
// available, resulting in a 404.
$this->lock
->wait('router_rebuild');
return FALSE;
}
$this->building = TRUE;
$collection = new RouteCollection();
// STATIC is supposed to be used to add new routes based static information
// like routing.yml files or PHP attributes.
$this->dispatcher
->dispatch(new RouteBuildEvent($collection), RoutingEvents::STATIC);
// DYNAMIC is supposed to be used to add new routes based upon all the
// static defined ones.
$this->dispatcher
->dispatch(new RouteBuildEvent($collection), RoutingEvents::DYNAMIC);
// ALTER is the final step to alter all the existing routes. We cannot stop
// people from adding new routes here, but we define it as a separate step
// to make it clear.
$this->dispatcher
->dispatch(new RouteBuildEvent($collection), RoutingEvents::ALTER);
$this->checkProvider
->setChecks($collection);
$this->dumper
->addRoutes($collection);
$this->dumper
->dump();
$this->lock
->release('router_rebuild');
$this->dispatcher
->dispatch(new Event(), RoutingEvents::FINISHED);
$this->building = FALSE;
$this->rebuildNeeded = FALSE;
return TRUE;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.