3 namespace Drupal\Core\Routing;
6 use Drupal\Core\Utility\LinkGeneratorInterface;
9 * Wrapper methods for the Link Generator.
11 * This utility trait should only be used in application-level code, such as
12 * classes that would implement ContainerInjectionInterface. Services registered
13 * in the Container should not use this trait but inject the appropriate service
14 * directly for easier testing.
16 * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
17 * Use \Drupal\Core\Link instead.
19 * @see https://www.drupal.org/node/2614344
21 trait LinkGeneratorTrait {
26 * @var \Drupal\Core\Utility\LinkGeneratorInterface
28 protected $linkGenerator;
31 * Renders a link to a route given a route name and its parameters.
33 * For details on the arguments, usage, and possible exceptions see
34 * \Drupal\Core\Utility\LinkGeneratorInterface::generate().
36 * @return \Drupal\Core\GeneratedLink
37 * A GeneratedLink object containing a link to the given route and
38 * parameters and bubbleable metadata.
40 * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
41 * Use \Drupal\Core\Link instead.
43 * @see https://www.drupal.org/node/2614344
44 * @see \Drupal\Core\Utility\LinkGeneratorInterface::generate()
46 protected function l($text, Url $url) {
47 return $this->getLinkGenerator()->generate($text, $url);
51 * Returns the link generator.
53 * @return \Drupal\Core\Utility\LinkGeneratorInterface
56 protected function getLinkGenerator() {
57 if (!isset($this->linkGenerator)) {
58 $this->linkGenerator = \Drupal::service('link_generator');
60 return $this->linkGenerator;
64 * Sets the link generator service.
66 * @param \Drupal\Core\Utility\LinkGeneratorInterface $generator
67 * The link generator service.
71 public function setLinkGenerator(LinkGeneratorInterface $generator) {
72 $this->linkGenerator = $generator;