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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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'];
  }
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.