interface UnroutedUrlAssemblerInterface

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Utility/UnroutedUrlAssemblerInterface.php \Drupal\Core\Utility\UnroutedUrlAssemblerInterface
  2. 10 core/lib/Drupal/Core/Utility/UnroutedUrlAssemblerInterface.php \Drupal\Core\Utility\UnroutedUrlAssemblerInterface
  3. 9 core/lib/Drupal/Core/Utility/UnroutedUrlAssemblerInterface.php \Drupal\Core\Utility\UnroutedUrlAssemblerInterface
  4. 8.9.x core/lib/Drupal/Core/Utility/UnroutedUrlAssemblerInterface.php \Drupal\Core\Utility\UnroutedUrlAssemblerInterface

Provides a way to build external or non Drupal local domain URLs.

Hierarchy

Expanded class hierarchy of UnroutedUrlAssemblerInterface

All classes that implement UnroutedUrlAssemblerInterface

11 files declare their use of UnroutedUrlAssemblerInterface
FieldPluginBaseTest.php in core/modules/views/tests/src/Unit/Plugin/field/FieldPluginBaseTest.php
FormSubmitterTest.php in core/tests/Drupal/Tests/Core/Form/FormSubmitterTest.php
GotoAction.php in core/lib/Drupal/Core/Action/Plugin/Action/GotoAction.php
LinkGeneratorTest.php in core/tests/Drupal/Tests/Core/Utility/LinkGeneratorTest.php
LinkTest.php in core/modules/jsonapi/tests/src/Unit/JsonApiResource/LinkTest.php

... See full list

File

core/lib/Drupal/Core/Utility/UnroutedUrlAssemblerInterface.php, line 8

Namespace

Drupal\Core\Utility
View source
interface UnroutedUrlAssemblerInterface {
  
  /**
   * Builds a domain-local or external URL from a URI.
   *
   * For actual implementations the logic probably has to be split up between
   * domain-local URIs and external URLs.
   *
   * @param string $uri
   *   A local URI or an external URL being linked to, such as "base:foo"
   *    or "https://example.com/foo".
   *   - If you provide a full URL, it will be considered an external URL as
   *     long as it has an allowed protocol.
   *   - If you provide only a local URI (e.g. "base:foo"), it will be
   *     considered a path local to Drupal, but not handled by the routing
   *     system.  The base path (the subdirectory where the front controller
   *     is found) will be added to the path. Additional query arguments for
   *     local paths must be supplied in $options['query'], not part of $uri.
   *   - If your external URL contains a query (e.g.
   *     https://example.com/foo?a=b), then you can either URL encode the query
   *     keys and values yourself and include them in $uri, or use
   *     $options['query'] to let this method URL encode them.
   * @param array $options
   *   (optional) An associative array of additional options, with the following
   *   elements:
   *   - 'query': An array of query key/value-pairs (without any URL-encoding)
   *      to append to the URL.
   *   - 'fragment': A fragment identifier (named anchor) to append to the URL.
   *     Do not include the leading '#' character.
   *   - 'absolute': Defaults to FALSE. Whether to force the output to be an
   *     absolute link (beginning with http:). Useful for links that will be
   *     displayed outside the site, such as in an RSS feed.
   *   - 'https': Whether this URL should point to a secure location. If not
   *     defined, the current scheme is used, so the user stays on HTTP or HTTPS
   *     respectively. TRUE enforces HTTPS and FALSE enforces HTTP.
   * @param bool $collect_bubbleable_metadata
   *   (optional) Defaults to FALSE. When TRUE, both the generated URL and its
   *   associated bubbleable metadata are returned.
   *
   * @return string|\Drupal\Core\GeneratedUrl
   *   A string containing a relative or absolute URL.
   *   When $collect_bubbleable_metadata is TRUE, a GeneratedUrl object is
   *   returned, containing the generated URL plus bubbleable metadata.
   *
   * @throws \InvalidArgumentException
   *   Thrown when the passed in path has no scheme.
   */
  public function assemble($uri, array $options = [], $collect_bubbleable_metadata = FALSE);

}

Members

Title Sort descending Modifiers Object type Summary Overrides
UnroutedUrlAssemblerInterface::assemble public function Builds a domain-local or external URL from a URI. 1

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.