Fichier

src/PathProcessor.php, line 157

Classe

PathProcessor
Processes the inbound path using path alias lookups.

Namespace

Drupal\subpathauto

Code

public function processOutbound($path, &$options = [], Request $request = NULL, BubbleableMetadata $bubbleableMetadata = NULL) {
    $original_path = $path;
    $subpath = [];
    $max_depth = $this->getMaxDepth();
    $i = 0;
    while (($path_array = explode('/', ltrim($path, '/'))) && ($max_depth === 0 || $i < $max_depth)) {
        $i++;
        $subpath[] = array_pop($path_array);
        if (empty($path_array)) {
            break;
        }
        $path = '/' . implode('/', $path_array);
        $processed_path = $this->pathProcessor
            ->processOutbound($path, $options, $request);
        if ($processed_path && $processed_path !== $path) {
            return $processed_path . '/' . implode('/', array_reverse($subpath));
        }
    }
    return $original_path;
}