cloud-8.x-2.0-beta1/src/Traits/EntityTrait.php

src/Traits/EntityTrait.php
<?php

namespace Drupal\cloud\Traits;

/**
 * The trait operating entities.
 */
trait EntityTrait {

  /**
   * Clear entities.
   *
   * @param string $entity_type
   *   Entity Type.
   * @param int $timestamp
   *   The timestamp for condition of refreshed time to clear entities.
   */
  protected function clearEntities($entity_type, $timestamp) {
    $entity_ids = $this->entityTypeManager->getStorage($entity_type)->getQuery()
      ->condition('refreshed', $timestamp, '<')
      ->condition('cloud_context', $this->cloudContext)
      ->execute();
    if (count($entity_ids)) {
      $this->deleteEntities($entity_type, $entity_ids);
    }
  }

  /**
   * Helper method to delete entities.
   *
   * @param string $entity_type
   *   Entity Type.
   * @param array $entity_ids
   *   Array of entity ids.
   */
  protected function deleteEntities($entity_type, array $entity_ids) {
    $entities = $this->entityTypeManager->getStorage($entity_type)->loadMultiple($entity_ids);
    $this->entityTypeManager->getStorage($entity_type)->delete($entities);
  }

  /**
   * Helper method to load all entities of a given type.
   *
   * @param string $entity_type
   *   Entity type.
   *
   * @return \Drupal\Core\Entity\EntityInterface[]
   *   Array of entities.
   */
  protected function loadAllEntities($entity_type) {
    return $this->entityTypeManager->getStorage($entity_type)->loadByProperties(
      ['cloud_context' => [$this->cloudContext]]
    );
  }

}

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

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