Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 namespace Drupal\KernelTests;
|
Chris@17
|
4
|
Chris@17
|
5 use Drupal\Core\Routing\PreloadableRouteProviderInterface;
|
Chris@17
|
6 use Symfony\Cmf\Component\Routing\PagedRouteProviderInterface;
|
Chris@17
|
7 use Symfony\Component\HttpFoundation\Request;
|
Chris@17
|
8
|
Chris@17
|
9 /**
|
Chris@17
|
10 * Rebuilds the router when the provider is instantiated.
|
Chris@17
|
11 */
|
Chris@17
|
12 class RouteProvider implements PreloadableRouteProviderInterface, PagedRouteProviderInterface {
|
Chris@17
|
13
|
Chris@17
|
14 use \Drupal\Core\DependencyInjection\DependencySerializationTrait;
|
Chris@17
|
15
|
Chris@17
|
16 /**
|
Chris@17
|
17 * Loads the real route provider from the container and rebuilds the router.
|
Chris@17
|
18 *
|
Chris@17
|
19 * @return \Drupal\Core\Routing\PreloadableRouteProviderInterface|\Symfony\Cmf\Component\Routing\PagedRouteProviderInterface|\Symfony\Component\EventDispatcher\EventSubscriberInterface
|
Chris@17
|
20 * The route provider.
|
Chris@17
|
21 */
|
Chris@17
|
22 protected function lazyLoadItself() {
|
Chris@17
|
23 if (!isset($this->service)) {
|
Chris@17
|
24 $container = \Drupal::getContainer();
|
Chris@17
|
25 $this->service = $container->get('simpletest.router.route_provider');
|
Chris@17
|
26 $container->get('router.builder')->rebuild();
|
Chris@17
|
27 }
|
Chris@17
|
28
|
Chris@17
|
29 return $this->service;
|
Chris@17
|
30 }
|
Chris@17
|
31
|
Chris@17
|
32 /**
|
Chris@17
|
33 * {@inheritdoc}
|
Chris@17
|
34 */
|
Chris@17
|
35 public function getRouteCollectionForRequest(Request $request) {
|
Chris@17
|
36 return $this->lazyLoadItself()->getRouteCollectionForRequest($request);
|
Chris@17
|
37 }
|
Chris@17
|
38
|
Chris@17
|
39 /**
|
Chris@17
|
40 * {@inheritdoc}
|
Chris@17
|
41 */
|
Chris@17
|
42 public function getRouteByName($name) {
|
Chris@17
|
43 return $this->lazyLoadItself()->getRouteByName($name);
|
Chris@17
|
44 }
|
Chris@17
|
45
|
Chris@17
|
46 /**
|
Chris@17
|
47 * {@inheritdoc}
|
Chris@17
|
48 */
|
Chris@17
|
49 public function preLoadRoutes($names) {
|
Chris@17
|
50 return $this->lazyLoadItself()->preLoadRoutes($names);
|
Chris@17
|
51 }
|
Chris@17
|
52
|
Chris@17
|
53 /**
|
Chris@17
|
54 * {@inheritdoc}
|
Chris@17
|
55 */
|
Chris@17
|
56 public function getRoutesByNames($names) {
|
Chris@17
|
57 return $this->lazyLoadItself()->getRoutesByNames($names);
|
Chris@17
|
58 }
|
Chris@17
|
59
|
Chris@17
|
60 /**
|
Chris@17
|
61 * {@inheritdoc}
|
Chris@17
|
62 */
|
Chris@17
|
63 public function getCandidateOutlines(array $parts) {
|
Chris@17
|
64 return $this->lazyLoadItself()->getCandidateOutlines($parts);
|
Chris@17
|
65 }
|
Chris@17
|
66
|
Chris@17
|
67 /**
|
Chris@17
|
68 * {@inheritdoc}
|
Chris@17
|
69 */
|
Chris@17
|
70 public function getRoutesByPattern($pattern) {
|
Chris@17
|
71 return $this->lazyLoadItself()->getRoutesByPattern($pattern);
|
Chris@17
|
72 }
|
Chris@17
|
73
|
Chris@17
|
74 /**
|
Chris@17
|
75 * {@inheritdoc}
|
Chris@17
|
76 */
|
Chris@17
|
77 public function routeProviderRouteCompare(array $a, array $b) {
|
Chris@17
|
78 return $this->lazyLoadItself()->routeProviderRouteCompare($a, $b);
|
Chris@17
|
79 }
|
Chris@17
|
80
|
Chris@17
|
81 /**
|
Chris@17
|
82 * {@inheritdoc}
|
Chris@17
|
83 */
|
Chris@17
|
84 public function getAllRoutes() {
|
Chris@17
|
85 return $this->lazyLoadItself()->getAllRoutes();
|
Chris@17
|
86 }
|
Chris@17
|
87
|
Chris@17
|
88 /**
|
Chris@17
|
89 * {@inheritdoc}
|
Chris@17
|
90 */
|
Chris@17
|
91 public function reset() {
|
Chris@17
|
92 return $this->lazyLoadItself()->reset();
|
Chris@17
|
93 }
|
Chris@17
|
94
|
Chris@17
|
95 /**
|
Chris@17
|
96 * {@inheritdoc}
|
Chris@17
|
97 */
|
Chris@17
|
98 public function getRoutesPaged($offset, $length = NULL) {
|
Chris@17
|
99 return $this->lazyLoadItself()->getRoutesPaged($offset, $length);
|
Chris@17
|
100 }
|
Chris@17
|
101
|
Chris@17
|
102 /**
|
Chris@17
|
103 * {@inheritdoc}
|
Chris@17
|
104 */
|
Chris@17
|
105 public function getRoutesCount() {
|
Chris@17
|
106 return $this->lazyLoadItself()->getRoutesCount();
|
Chris@17
|
107 }
|
Chris@17
|
108
|
Chris@17
|
109 }
|