function UriRetriever::retrieve
Overrides UriRetrieverInterface::retrieve
File
-
vendor/
justinrainbow/ json-schema/ src/ JsonSchema/ Uri/ UriRetriever.php, line 164
Class
- UriRetriever
- Retrieves JSON Schema URIs
Namespace
JsonSchema\UriCode
public function retrieve($uri, $baseUri = null, $translate = true) {
$resolver = new UriResolver();
$resolvedUri = $fetchUri = $resolver->resolve($uri, $baseUri);
//fetch URL without #fragment
$arParts = $resolver->parse($resolvedUri);
if (isset($arParts['fragment'])) {
unset($arParts['fragment']);
$fetchUri = $resolver->generate($arParts);
}
// apply URI translations
if ($translate) {
$fetchUri = $this->translate($fetchUri);
}
$jsonSchema = $this->loadSchema($fetchUri);
// Use the JSON pointer if specified
$jsonSchema = $this->resolvePointer($jsonSchema, $resolvedUri);
if ($jsonSchema instanceof \stdClass) {
$jsonSchema->id = $resolvedUri;
}
return $jsonSchema;
}