06deb1bb0d746f4eb0d9d86880ccd2f62bb35846
[yaffs-website] / web / core / lib / Drupal / Core / Routing / LinkGeneratorTrait.php
1 <?php
2
3 namespace Drupal\Core\Routing;
4
5
6 use Drupal\Core\Url;
7 use Drupal\Core\Utility\LinkGeneratorInterface;
8
9 /**
10  * Wrapper methods for the Link Generator.
11  *
12  * This utility trait should only be used in application-level code, such as
13  * classes that would implement ContainerInjectionInterface. Services registered
14  * in the Container should not use this trait but inject the appropriate service
15  * directly for easier testing.
16  *
17  * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
18  *   Use \Drupal\Core\Link instead.
19  */
20 trait LinkGeneratorTrait {
21
22   /**
23    * The link generator.
24    *
25    * @var \Drupal\Core\Utility\LinkGeneratorInterface
26    */
27   protected $linkGenerator;
28
29   /**
30    * Renders a link to a route given a route name and its parameters.
31    *
32    * For details on the arguments, usage, and possible exceptions see
33    * \Drupal\Core\Utility\LinkGeneratorInterface::generate().
34    *
35    * @return \Drupal\Core\GeneratedLink
36    *   A GeneratedLink object containing a link to the given route and
37    *   parameters and bubbleable metadata.
38    *
39    * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
40    *   Use \Drupal\Core\Link instead.
41    *
42    * @see \Drupal\Core\Utility\LinkGeneratorInterface::generate()
43    */
44   protected function l($text, Url $url) {
45     return $this->getLinkGenerator()->generate($text, $url);
46   }
47
48   /**
49    * Returns the link generator.
50    *
51    * @return \Drupal\Core\Utility\LinkGeneratorInterface
52    *   The link generator
53    */
54   protected function getLinkGenerator() {
55     if (!isset($this->linkGenerator)) {
56       $this->linkGenerator = \Drupal::service('link_generator');
57     }
58     return $this->linkGenerator;
59   }
60
61   /**
62    * Sets the link generator service.
63    *
64    * @param \Drupal\Core\Utility\LinkGeneratorInterface $generator
65    *   The link generator service.
66    *
67    * @return $this
68    */
69   public function setLinkGenerator(LinkGeneratorInterface $generator) {
70     $this->linkGenerator = $generator;
71
72     return $this;
73   }
74
75 }