content_sync-8.x-2.x-dev/src/Plugin/SyncNormalizerDecoratorTrait.php

src/Plugin/SyncNormalizerDecoratorTrait.php
<?php

namespace Drupal\content_sync\Plugin;

use Drupal\Core\Entity\ContentEntityInterface;

trait SyncNormalizerDecoratorTrait {

  protected function decorateNormalization(array &$normalized_entity, ContentEntityInterface $entity, $format, array $context = []) {
    $plugins = $this->getDecoratorManager()->getDefinitions();
    // Make sure ID cleaner is the last plugin.
    $v = $plugins['id_cleaner'];
    unset($plugins['id_cleaner']);
    $plugins['id_cleaner'] = $v;
    foreach ($plugins as $decorator) {
      /* @var $instance SyncNormalizerDecoratorInterface */
      $instance = $this->getDecoratorManager()->createInstance($decorator['id']);
      $instance->decorateNormalization($normalized_entity, $entity, $format, $context);
    }
  }

  protected function decorateDenormalization(array &$normalized_entity, $type, $format, array $context = []) {
    $plugins = $this->getDecoratorManager()->getDefinitions();
    foreach ($plugins as $decorator) {
      /* @var $instance SyncNormalizerDecoratorInterface */
      $instance = $this->getDecoratorManager()->createInstance($decorator['id']);
      $instance->decorateDenormalization($normalized_entity, $type, $format, $context);
    }
  }

  protected function decorateDenormalizedEntity(ContentEntityInterface $entity, array $normalized_entity, $format, array $context = []) {
    $plugins = $this->getDecoratorManager()->getDefinitions();
    foreach ($plugins as $decorator) {
      /* @var $instance SyncNormalizerDecoratorInterface */
      $instance = $this->getDecoratorManager()->createInstance($decorator['id']);
      $instance->decorateDenormalizedEntity($entity, $normalized_entity, $format, $context);
    }
  }

  /**
   * @return SyncNormalizerDecoratorManager
   */
  protected abstract function getDecoratorManager();

}

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

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