Chris@0: routeProvider = $route_provider; Chris@0: $this->routeBuilder = $route_builder; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Gets the real route provider service and rebuilds the router id necessary. Chris@0: * Chris@0: * @return \Drupal\Core\Routing\RouteProviderInterface Chris@0: * The route provider service. Chris@0: */ Chris@0: protected function getRouteProvider() { Chris@12: if (!$this->rebuilt && !$this->rebuilding) { Chris@0: $this->routeBuilder->rebuild(); Chris@0: $this->rebuilt = TRUE; Chris@0: } Chris@0: return $this->routeProvider; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRouteCollectionForRequest(Request $request) { Chris@0: return $this->getRouteProvider()->getRouteCollectionForRequest($request); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRouteByName($name) { Chris@0: return $this->getRouteProvider()->getRouteByName($name); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function preLoadRoutes($names) { Chris@0: return $this->getRouteProvider()->preLoadRoutes($names); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRoutesByNames($names) { Chris@0: return $this->getRouteProvider()->getRoutesByNames($names); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRoutesByPattern($pattern) { Chris@0: return $this->getRouteProvider()->getRoutesByPattern($pattern); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getAllRoutes() { Chris@0: return $this->getRouteProvider()->getAllRoutes(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function reset() { Chris@0: // Don't call getRouteProvider as this is results in recursive rebuilds. Chris@0: return $this->routeProvider->reset(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRoutesPaged($offset, $length = NULL) { Chris@0: return $this->getRouteProvider()->getRoutesPaged($offset, $length); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRoutesCount() { Chris@0: return $this->getRouteProvider()->getRoutesCount(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Determines if the router has been rebuilt. Chris@0: * Chris@0: * @return bool Chris@0: * TRUE is the router has been rebuilt, FALSE if not. Chris@0: */ Chris@0: public function hasRebuilt() { Chris@0: return $this->rebuilt; Chris@0: } Chris@0: Chris@12: /** Chris@12: * {@inheritdoc} Chris@12: */ Chris@12: public static function getSubscribedEvents() { Chris@12: $events[RoutingEvents::DYNAMIC][] = ['routerRebuilding', 3000]; Chris@12: $events[RoutingEvents::FINISHED][] = ['routerRebuildFinished', -3000]; Chris@12: return $events; Chris@12: } Chris@12: Chris@12: /** Chris@12: * Sets the router rebuilding flag to TRUE. Chris@12: */ Chris@12: public function routerRebuilding() { Chris@12: $this->rebuilding = TRUE; Chris@12: } Chris@12: Chris@12: /** Chris@12: * Sets the router rebuilding flag to FALSE. Chris@12: */ Chris@12: public function routerRebuildFinished() { Chris@12: $this->rebuilding = FALSE; Chris@12: } Chris@12: Chris@0: }