annotate core/lib/Drupal/Core/Routing/RouteProviderLazyBuilder.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 7a779792577d
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Core\Routing;
Chris@0 4
Chris@0 5 use Symfony\Cmf\Component\Routing\PagedRouteProviderInterface;
Chris@0 6 use Symfony\Component\HttpFoundation\Request;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * A Route Provider front-end for all Drupal-stored routes.
Chris@0 10 */
Chris@0 11 class RouteProviderLazyBuilder implements PreloadableRouteProviderInterface, PagedRouteProviderInterface {
Chris@0 12
Chris@0 13 /**
Chris@0 14 * The route provider service.
Chris@0 15 *
Chris@0 16 * @var \Drupal\Core\Routing\RouteProviderInterface
Chris@0 17 */
Chris@0 18 protected $routeProvider;
Chris@0 19
Chris@0 20 /**
Chris@0 21 * The route building service.
Chris@0 22 *
Chris@0 23 * @var \Drupal\Core\Routing\RouteBuilderInterface
Chris@0 24 */
Chris@0 25 protected $routeBuilder;
Chris@0 26
Chris@0 27 /**
Chris@0 28 * Flag to determine if the router has been rebuilt.
Chris@0 29 *
Chris@0 30 * @var bool
Chris@0 31 */
Chris@0 32 protected $rebuilt = FALSE;
Chris@0 33
Chris@0 34 /**
Chris@0 35 * RouteProviderLazyBuilder constructor.
Chris@0 36 *
Chris@0 37 * @param \Drupal\Core\Routing\RouteProviderInterface $route_provider
Chris@0 38 * The route provider service.
Chris@0 39 * @param \Drupal\Core\Routing\RouteBuilderInterface $route_builder
Chris@0 40 * The route building service.
Chris@0 41 */
Chris@0 42 public function __construct(RouteProviderInterface $route_provider, RouteBuilderInterface $route_builder) {
Chris@0 43 $this->routeProvider = $route_provider;
Chris@0 44 $this->routeBuilder = $route_builder;
Chris@0 45 }
Chris@0 46
Chris@0 47 /**
Chris@0 48 * Gets the real route provider service and rebuilds the router id necessary.
Chris@0 49 *
Chris@0 50 * @return \Drupal\Core\Routing\RouteProviderInterface
Chris@0 51 * The route provider service.
Chris@0 52 */
Chris@0 53 protected function getRouteProvider() {
Chris@0 54 if (!$this->rebuilt) {
Chris@0 55 $this->routeBuilder->rebuild();
Chris@0 56 $this->rebuilt = TRUE;
Chris@0 57 }
Chris@0 58 return $this->routeProvider;
Chris@0 59 }
Chris@0 60
Chris@0 61 /**
Chris@0 62 * {@inheritdoc}
Chris@0 63 */
Chris@0 64 public function getRouteCollectionForRequest(Request $request) {
Chris@0 65 return $this->getRouteProvider()->getRouteCollectionForRequest($request);
Chris@0 66 }
Chris@0 67
Chris@0 68 /**
Chris@0 69 * {@inheritdoc}
Chris@0 70 */
Chris@0 71 public function getRouteByName($name) {
Chris@0 72 return $this->getRouteProvider()->getRouteByName($name);
Chris@0 73 }
Chris@0 74
Chris@0 75 /**
Chris@0 76 * {@inheritdoc}
Chris@0 77 */
Chris@0 78 public function preLoadRoutes($names) {
Chris@0 79 return $this->getRouteProvider()->preLoadRoutes($names);
Chris@0 80 }
Chris@0 81
Chris@0 82 /**
Chris@0 83 * {@inheritdoc}
Chris@0 84 */
Chris@0 85 public function getRoutesByNames($names) {
Chris@0 86 return $this->getRouteProvider()->getRoutesByNames($names);
Chris@0 87 }
Chris@0 88
Chris@0 89 /**
Chris@0 90 * {@inheritdoc}
Chris@0 91 */
Chris@0 92 public function getRoutesByPattern($pattern) {
Chris@0 93 return $this->getRouteProvider()->getRoutesByPattern($pattern);
Chris@0 94 }
Chris@0 95
Chris@0 96 /**
Chris@0 97 * {@inheritdoc}
Chris@0 98 */
Chris@0 99 public function getAllRoutes() {
Chris@0 100 return $this->getRouteProvider()->getAllRoutes();
Chris@0 101 }
Chris@0 102
Chris@0 103 /**
Chris@0 104 * {@inheritdoc}
Chris@0 105 */
Chris@0 106 public function reset() {
Chris@0 107 // Don't call getRouteProvider as this is results in recursive rebuilds.
Chris@0 108 return $this->routeProvider->reset();
Chris@0 109 }
Chris@0 110
Chris@0 111 /**
Chris@0 112 * {@inheritdoc}
Chris@0 113 */
Chris@0 114 public function getRoutesPaged($offset, $length = NULL) {
Chris@0 115 return $this->getRouteProvider()->getRoutesPaged($offset, $length);
Chris@0 116 }
Chris@0 117
Chris@0 118 /**
Chris@0 119 * {@inheritdoc}
Chris@0 120 */
Chris@0 121 public function getRoutesCount() {
Chris@0 122 return $this->getRouteProvider()->getRoutesCount();
Chris@0 123 }
Chris@0 124
Chris@0 125 /**
Chris@0 126 * Determines if the router has been rebuilt.
Chris@0 127 *
Chris@0 128 * @return bool
Chris@0 129 * TRUE is the router has been rebuilt, FALSE if not.
Chris@0 130 */
Chris@0 131 public function hasRebuilt() {
Chris@0 132 return $this->rebuilt;
Chris@0 133 }
Chris@0 134
Chris@0 135 }