datafield-1.x-dev/src/Normalizer/DataFieldEntityNormalizer.php

src/Normalizer/DataFieldEntityNormalizer.php
<?php

namespace Drupal\datafield\Normalizer;

use Drupal\Core\Field\FieldItemInterface;
use Drupal\Core\TypedData\ComplexDataInterface;
use Drupal\serialization\Normalizer\FieldItemNormalizer;

/**
 * Normalizes/denormalizes specific field data.
 */
class DataFieldEntityNormalizer extends FieldItemNormalizer {

  /**
   * {@inheritdoc}
   */
  protected $format = ['json', 'xml'];

  /**
   * {@inheritdoc}
   */
  protected $supportedInterfaceOrClass = FieldItemInterface::class;

  /**
   * {@inheritdoc}
   */
  public function getSupportedTypes(?string $format): array {
    return [
      ComplexDataInterface::class => TRUE,
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function normalize($object, $format = NULL, array $context = []): array|string|int|float|bool|\ArrayObject|NULL {
    if (method_exists($this, 'selfSupportsNormalization') && $this->selfSupportsNormalization($object, $format, $context)) {
      return parent::normalize($object, $format, $context);
    }
    if (!empty($this->fallbackNormalizer) && $this->fallbackNormalizer->supportsNormalization($object, $format, $context)) {
      return $this->fallbackNormalizer->normalize($object, $format, $context);
    }
    return parent::normalize($object, $format, $context);
  }

}

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

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