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

Breadcrumb

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

function FileGetContents::retrieve

Overrides UriRetrieverInterface::retrieve

See also

\JsonSchema\Uri\Retrievers\UriRetrieverInterface::retrieve()

File

vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/FileGetContents.php, line 28

Class

FileGetContents
Tries to retrieve JSON schemas from a URI using file_get_contents()

Namespace

JsonSchema\Uri\Retrievers

Code

public function retrieve($uri) {
    $errorMessage = null;
    set_error_handler(function ($errno, $errstr) use (&$errorMessage) {
        $errorMessage = $errstr;
    });
    $response = file_get_contents($uri);
    restore_error_handler();
    if ($errorMessage) {
        throw new ResourceNotFoundException($errorMessage);
    }
    if (false === $response) {
        throw new ResourceNotFoundException('JSON schema not found at ' . $uri);
    }
    if ($response == '' && substr($uri, 0, 7) == 'file://' && substr($uri, -1) == '/') {
        throw new ResourceNotFoundException('JSON schema not found at ' . $uri);
    }
    $this->messageBody = $response;
    if (!empty($http_response_header)) {
        // $http_response_header cannot be tested, because it's defined in the method's local scope
        // See http://php.net/manual/en/reserved.variables.httpresponseheader.php for more info.
        $this->fetchContentType($http_response_header);
        // @codeCoverageIgnore
    }
    else {
        // @codeCoverageIgnore
        // Could be a "file://" url or something else - fake up the response
        $this->contentType = null;
    }
    return $this->messageBody;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal