multiversion-8.x-1.0-beta34/src/Entity/Storage/Sql/CommentStorage.php
src/Entity/Storage/Sql/CommentStorage.php
<?php
namespace Drupal\multiversion\Entity\Storage\Sql;
use Drupal\multiversion\Entity\Storage\ContentEntityStorageInterface;
use Drupal\multiversion\Entity\Storage\ContentEntityStorageTrait;
use Drupal\comment\CommentStorage as CoreCommentStorage;
/**
* Storage handler for comments.
*/
class CommentStorage extends CoreCommentStorage implements ContentEntityStorageInterface {
use ContentEntityStorageTrait {
delete as deleteEntities;
}
/**
* {@inheritdoc}
*/
public function delete(array $entities) {
// Ensure that the entities are keyed by ID.
$keyed_entities = [];
foreach ($entities as $entity) {
$keyed_entities[$entity->id()] = $entity;
}
// Delete received comments and all their children.
if (!empty($keyed_entities)) {
$child_cids = $this->getChildCids($keyed_entities);
while (!empty($child_cids)) {
$child_entities = $this->loadMultiple($child_cids);
$keyed_entities = $keyed_entities + $child_entities;
$child_cids = $this->getChildCids($child_entities);
}
}
// Sort the array with entities descending to delete children before their
// parents.
krsort($keyed_entities);
$this->deleteEntities($keyed_entities);
}
}
