You are here

trait UrlGeneratorTrait in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Routing/UrlGeneratorTrait.php \Drupal\Core\Routing\UrlGeneratorTrait

Wrapper methods for the Url Generator.

This utility trait should only be used in application-level code, such as classes that would implement ContainerInjectionInterface. Services registered in the Container should not use this trait but inject the appropriate service directly for easier testing.

Hierarchy

14 files declare their use of UrlGeneratorTrait
AccessDeniedSubscriber.php in core/modules/user/src/EventSubscriber/AccessDeniedSubscriber.php
Contains \Drupal\user\EventSubscriber\AccessDeniedSubscriber.
BlockContentAddLocalAction.php in core/modules/block_content/src/Plugin/Menu/LocalAction/BlockContentAddLocalAction.php
Contains \Drupal\block_content\Plugin\Menu\LocalAction\BlockContentAddLocalAction.
CommentItem.php in core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php
Contains \Drupal\comment\Plugin\Field\FieldType\CommentItem.
CommentManager.php in core/modules/comment/src/CommentManager.php
Contains \Drupal\comment\CommentManager.
ControllerBase.php in core/lib/Drupal/Core/Controller/ControllerBase.php
Contains \Drupal\Core\Controller\ControllerBase.

... See full list

File

core/lib/Drupal/Core/Routing/UrlGeneratorTrait.php, line 20
Contains \Drupal\Core\Routing\UrlGeneratorTrait.

Namespace

Drupal\Core\Routing
View source
trait UrlGeneratorTrait {

  /**
   * The url generator.
   *
   * @var \Drupal\Core\Routing\UrlGeneratorInterface
   */
  protected $urlGenerator;

  /**
   * Generates a URL or path for a specific route based on the given parameters.
   *
   * @see \Drupal\Core\Routing\UrlGeneratorInterface::generateFromRoute() for
   *   details on the arguments, usage, and possible exceptions.
   *
   * @return string
   *   The generated URL for the given route.
   */
  protected function url($route_name, $route_parameters = array(), $options = array()) {
    return $this
      ->getUrlGenerator()
      ->generateFromRoute($route_name, $route_parameters, $options);
  }

  /**
   * Returns a redirect response object for the specified route.
   *
   * @param string $route_name
   *   The name of the route to which to redirect.
   * @param array $route_parameters
   *   (optional) Parameters for the route.
   * @param array $options
   *   (optional) An associative array of additional options.
   * @param int $status
   *   (optional) The HTTP redirect status code for the redirect. The default is
   *   302 Found.
   *
   * @return \Symfony\Component\HttpFoundation\RedirectResponse
   *   A redirect response object that may be returned by the controller.
   */
  protected function redirect($route_name, array $route_parameters = [], array $options = [], $status = 302) {
    $options['absolute'] = TRUE;
    $url = $this
      ->url($route_name, $route_parameters, $options);
    return new RedirectResponse($url, $status);
  }

  /**
   * Returns the URL generator service.
   *
   * @return \Drupal\Core\Routing\UrlGeneratorInterface
   *   The URL generator service.
   */
  protected function getUrlGenerator() {
    if (!$this->urlGenerator) {
      $this->urlGenerator = \Drupal::service('url_generator');
    }
    return $this->urlGenerator;
  }

  /**
   * Sets the URL generator service.
   *
   * @param \Drupal\Core\Routing\UrlGeneratorInterface $generator
   *   The url generator service.
   *
   * @return $this
   */
  public function setUrlGenerator(UrlGeneratorInterface $generator) {
    $this->urlGenerator = $generator;
    return $this;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
UrlGeneratorTrait::$urlGenerator protected property The url generator.
UrlGeneratorTrait::getUrlGenerator protected function Returns the URL generator service.
UrlGeneratorTrait::redirect protected function Returns a redirect response object for the specified route.
UrlGeneratorTrait::setUrlGenerator public function Sets the URL generator service.
UrlGeneratorTrait::url protected function Generates a URL or path for a specific route based on the given parameters.