You are here

trait JsonWriterTrait in Content Synchronizer 8

Same name and namespace in other branches
  1. 8.2 src/Base/JsonWriterTrait.php \Drupal\content_synchronizer\Base\JsonWriterTrait
  2. 3.x src/Base/JsonWriterTrait.php \Drupal\content_synchronizer\Base\JsonWriterTrait

Json writer tool.

Hierarchy

3 files declare their use of JsonWriterTrait
ExportEntityWriter.php in src/Processors/ExportEntityWriter.php
FileProcessor.php in src/Plugin/content_synchronizer/entity_processor/FileProcessor.php
ImportEntity.php in src/Entity/ImportEntity.php

File

src/Base/JsonWriterTrait.php, line 8

Namespace

Drupal\content_synchronizer\Base
View source
trait JsonWriterTrait {

  /**
   * Save json in the destination file.
   */
  protected function writeJson($data, $destination) {

    // Create dir :
    $dir = explode('/', $destination);
    array_pop($dir);
    $dir = implode('/', $dir);
    $this
      ->createDirectory($dir);
    file_save_data(json_encode($data), $destination, FILE_EXISTS_REPLACE);
  }

  /**
   * Get json decode data from a file.
   */
  protected function getDataFromFile($path) {
    if (file_exists($path)) {
      return json_decode(file_get_contents($path), TRUE);
    }
    return NULL;
  }

  /**
   * Create a directory if not exists.
   */
  protected function createDirectory($dir) {
    if (!is_dir($dir)) {
      file_prepare_directory($dir, FILE_CREATE_DIRECTORY);
    }
  }

  /**
   * Create a directory tree.
   */
  protected function createDirTreeForFileDest($destination, $root = '/') {
    $destinationItems = explode('/', $destination);
    $fileName = array_pop($destinationItems);

    // Create destination tree.
    foreach ($destinationItems as $dirItem) {
      $root .= '/' . $dirItem;
      $this
        ->createDirectory($root);
    }
    return $root . '/' . $fileName;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
JsonWriterTrait::createDirectory protected function Create a directory if not exists.
JsonWriterTrait::createDirTreeForFileDest protected function Create a directory tree.
JsonWriterTrait::getDataFromFile protected function Get json decode data from a file.
JsonWriterTrait::writeJson protected function Save json in the destination file.