function UriResolver::resolve
Same name in this branch
- 11.1.x vendor/guzzlehttp/psr7/src/UriResolver.php \GuzzleHttp\Psr7\UriResolver::resolve()
- 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\UriCode
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);
}