Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. UriResolver.php

function UriResolver::resolve

Same name in this branch
  1. 11.1.x vendor/guzzlehttp/psr7/src/UriResolver.php \GuzzleHttp\Psr7\UriResolver::resolve()
  2. 11.1.x vendor/symfony/dom-crawler/UriResolver.php \Symfony\Component\DomCrawler\UriResolver::resolve()

Overrides UriResolverInterface::resolve

File

vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriResolver.php, line 77

Class

UriResolver
Resolves JSON Schema URIs

Namespace

JsonSchema\Uri

Code

public function resolve($uri, $baseUri = null) {
    // treat non-uri base as local file path
    if (!is_null($baseUri) && !filter_var($baseUri, \FILTER_VALIDATE_URL) && !preg_match('|^[^/]+://|u', $baseUri)) {
        if (is_file($baseUri)) {
            $baseUri = 'file://' . realpath($baseUri);
        }
        elseif (is_dir($baseUri)) {
            $baseUri = 'file://' . realpath($baseUri) . '/';
        }
        else {
            $baseUri = 'file://' . getcwd() . '/' . $baseUri;
        }
    }
    if ($uri == '') {
        return $baseUri;
    }
    $components = $this->parse($uri);
    $path = $components['path'];
    if (!empty($components['scheme'])) {
        return $uri;
    }
    $baseComponents = $this->parse($baseUri);
    $basePath = $baseComponents['path'];
    $baseComponents['path'] = self::combineRelativePathWithBasePath($path, $basePath);
    if (isset($components['fragment'])) {
        $baseComponents['fragment'] = $components['fragment'];
    }
    return $this->generate($baseComponents);
}
RSS feed
Powered by Drupal