function UnroutedUrlAssembler::addOptionDefaults
Same name in other branches
- 9 core/lib/Drupal/Core/Utility/UnroutedUrlAssembler.php \Drupal\Core\Utility\UnroutedUrlAssembler::addOptionDefaults()
- 8.9.x core/lib/Drupal/Core/Utility/UnroutedUrlAssembler.php \Drupal\Core\Utility\UnroutedUrlAssembler::addOptionDefaults()
- 10 core/lib/Drupal/Core/Utility/UnroutedUrlAssembler.php \Drupal\Core\Utility\UnroutedUrlAssembler::addOptionDefaults()
Merges in default defaults.
Parameters
array $options: The options to merge in the defaults.
2 calls to UnroutedUrlAssembler::addOptionDefaults()
- UnroutedUrlAssembler::buildExternalUrl in core/
lib/ Drupal/ Core/ Utility/ UnroutedUrlAssembler.php - UnroutedUrlAssembler::buildLocalUrl in core/
lib/ Drupal/ Core/ Utility/ UnroutedUrlAssembler.php
File
-
core/
lib/ Drupal/ Core/ Utility/ UnroutedUrlAssembler.php, line 170
Class
- UnroutedUrlAssembler
- Provides a way to build external or non Drupal local domain URLs.
Namespace
Drupal\Core\UtilityCode
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 (str_contains($base_path_with_script, $script_name)) {
$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'];
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.