All pages

entityManage - a helper function for CRUD (create/update/delete + list) entity actions

A handy wrapper function that simplifies loading, creating, updating, and deleting Drupal entities.

function entityManage($entity_type, $entityIdArray = [], $values = []) {
  $storage = \Drupal::entityTypeManager()->getStorage($entity_type);
  if (empty($entityIdArray) && empty($values)) return $storage->loadMultiple();
  $entity = is_array($entityIdArray)
    ? $storage->loadByProperties($entityIdArray)
    : $storage->load($entityIdArray);
  if (!empty($entity)) {
    if (is_array($entity) && count($entity) == 1) $entity = $entity[key($entity)];
    if (empty($values)) { if (is_array($entity)) krsort($entity); return $entity; }
    if ($values === 'del') {
      if (is_array($entity)) foreach ($entity as $e) $e->delete();
      else $entity->delete();
      return;
    }
    foreach ($values as $k => $v) $entity->set($k, $v);
    $entity->save();
  } else {
    if (!empty($values) && $values !== 'del') {
      $entity = $storage->create($values); $entity->save();
    }
  }
  return !empty($entity) ? $entity : false;
}