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