You are here

class JSONFIReader in Feed Import 8

JSON Reader class, used to read data from json files.

Hierarchy

Expanded class hierarchy of JSONFIReader

File

feed_import_base/src/JSONFIReader.php, line 7

Namespace

Drupal\feed_import_base
View source
class JSONFIReader extends FeedImportVectorReader {

  /**
   * {@inheritdoc}
   */
  public function init() {

    // Set default params
    $this->options += array(
      'stream' => NULL,
      'parent' => NULL,
      'raw' => NULL,
      'url' => NULL,
    );
    if ($this->options['url']) {

      // Check for stream options.
      if ($ctx = $this
        ->getStreamContext($this->options['stream'])) {

        // Open the file using stream options.
        $this->items = json_decode(file_get_contents($this->options['url'], FALSE, $ctx));
      }
      else {

        // Open the file.
        $this->items = json_decode(file_get_contents($this->options['url']));
      }
    }
    elseif ($this->options['raw']) {
      $this->items = json_decode($this->options['raw']);
    }
    if (!$this->items) {
      return FALSE;
    }
    unset($this->options['raw']);

    // Check for parent
    if ($this->options['parent']) {
      $this->options['parent'] = $this
        ->formatPath($this->options['parent']);
      $this->items = $this
        ->map($this->items, $this->options['parent']);
    }
    return TRUE;
  }

  /**
   * {@inheritdoc}
   */
  public function get() {
    return array_shift($this->items);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FeedImportConfigurable::$options protected property
FeedImportConfigurable::cleanLines public static function Helper function to get lines of a string
FeedImportConfigurable::setOptions public function Sets options for this instance 4
FeedImportReader::$items protected property
FeedImportReader::getStreamContext public function Returns a stream context
FeedImportReader::__construct final public function Constructor of reader. Constructor is final but you'll have to implement init() to init your reader.
FeedImportReader::__destruct public function Destructor. 2
FeedImportVectorReader::formatPath public function Override this to preprocess your paths before they are used in map(). Overrides FeedImportReader::formatPath
FeedImportVectorReader::map public function Returns a value mapped from obj by path. Overrides FeedImportReader::map
FeedImportVectorReader::submap public function Gets an element by path.
FeedImportVectorReader::WILDCARD constant
JSONFIReader::get public function This method returns the next available item or NULL if there are no items left. Overrides FeedImportReader::get
JSONFIReader::init public function Here you'll init your reader. Overrides FeedImportReader::init