data_pipelines-1.x-dev/src/Plugin/DatasetDestination/JsonDestination.php

src/Plugin/DatasetDestination/JsonDestination.php
<?php

declare(strict_types=1);

namespace Drupal\data_pipelines\Plugin\DatasetDestination;

use Drupal\Component\Serialization\Json;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\data_pipelines\Attribute\DatasetDestination;

/**
 * A class for providing JSON as an output.
 */
#[DatasetDestination(
  id: 'file_json',
  label: new TranslatableMarkup('JSON File'),
  description: new TranslatableMarkup('Writes the dataset to a JSON file.'),
)]
class JsonDestination extends FileDestinationBase {

  /**
   * {@inheritdoc}
   */
  protected function getFileExtension(): string {
    return 'json';
  }

  /**
   * {@inheritdoc}
   */
  protected function serializeChunk(array $chunk): string {
    return (key($chunk) !== 0 ? ",\n" : '') . Json::encode($chunk);
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state): array {
    $form = parent::buildConfigurationForm($form, $form_state);
    $form['dir']['#placeholder'] = 'example/';
    return $form;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc