protected function UnroutedUrlAssembler::addOptionDefaults

protected UnroutedUrlAssembler::addOptionDefaults(array &$options)

Merges in default defaults

Parameters

array $options: The options to merge in the defaults.

File

core/lib/Drupal/Core/Utility/UnroutedUrlAssembler.php, line 165

Class

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

Namespace

Drupal\Core\Utility

Code

protected function addOptionDefaults(array &$options) {
  $request = $this->requestStack->getCurrentRequest();
  $current_base_path = $request->getBasePath() . '/';
  $current_script_path = '';
  $base_path_with_script = $request->getBaseUrl();

  // If the current request was made with the script name (eg, index.php) in
  // it, then extract it, making sure the leading / is gone, and a trailing /
  // is added, to allow simple string concatenation with other parts.
  if (!empty($base_path_with_script)) {
    $script_name = $request->getScriptName();
    if (strpos($base_path_with_script, $script_name) !== FALSE) {
      $current_script_path = ltrim(substr($script_name, strlen($current_base_path)), '/') . '/';
    }
  }

  // Merge in defaults.
  $options += [
    'fragment' => '',
    'query' => [],
    'absolute' => FALSE,
    'prefix' => '',
    'script' => $current_script_path,
  ];

  if (isset($options['fragment']) && $options['fragment'] !== '') {
    $options['fragment'] = '#' . $options['fragment'];
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Utility!UnroutedUrlAssembler.php/function/UnroutedUrlAssembler::addOptionDefaults/8.1.x