3 namespace Drupal\Core\Routing;
7 use Drupal\Core\Utility\LinkGeneratorInterface;
10 * Wrapper methods for the Link Generator.
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.
17 * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
18 * Use \Drupal\Core\Link instead.
20 trait LinkGeneratorTrait {
25 * @var \Drupal\Core\Utility\LinkGeneratorInterface
27 protected $linkGenerator;
30 * Renders a link to a route given a route name and its parameters.
32 * For details on the arguments, usage, and possible exceptions see
33 * \Drupal\Core\Utility\LinkGeneratorInterface::generate().
35 * @return \Drupal\Core\GeneratedLink
36 * A GeneratedLink object containing a link to the given route and
37 * parameters and bubbleable metadata.
39 * @deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0.
40 * Use \Drupal\Core\Link instead.
42 * @see \Drupal\Core\Utility\LinkGeneratorInterface::generate()
44 protected function l($text, Url $url) {
45 return $this->getLinkGenerator()->generate($text, $url);
49 * Returns the link generator.
51 * @return \Drupal\Core\Utility\LinkGeneratorInterface
54 protected function getLinkGenerator() {
55 if (!isset($this->linkGenerator)) {
56 $this->linkGenerator = \Drupal::service('link_generator');
58 return $this->linkGenerator;
62 * Sets the link generator service.
64 * @param \Drupal\Core\Utility\LinkGeneratorInterface $generator
65 * The link generator service.
69 public function setLinkGenerator(LinkGeneratorInterface $generator) {
70 $this->linkGenerator = $generator;