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