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]]
);
}
}
