You are here

JSONFIReader.php in Feed Import 8

File

feed_import_base/src/JSONFIReader.php
View source
<?php

namespace Drupal\feed_import_base;


/**
 * JSON Reader class, used to read data from json files.
 */
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);
  }

}

Classes

Namesort descending Description
JSONFIReader JSON Reader class, used to read data from json files.