DeleteContent.php in Drush Delete All 3.x
File
src/DeleteContent.php
View source
<?php
namespace Drupal\drush_delete;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Database\Connection;
class DeleteContent {
protected $saysomething;
protected $entityTypeManager;
protected $connection;
public function __construct(EntityTypeManagerInterface $entity_type_manager, Connection $connection) {
$this->saysomething = 'Hello World!';
$this->entityTypeManager = $entity_type_manager;
$this->connection = $connection;
}
public function sayHello($name = '') {
if (empty($name)) {
return $this->saysomething;
}
else {
return "Hello " . $name . "!";
}
}
public function deleteAllEntityType($type) {
$nids = $this
->getEntityIds($type);
if (!empty($nids)) {
$no_delete = 0;
foreach ($nids as $nid) {
$this->entityTypeManager
->getStorage('node')
->load($nid)
->delete();
$no_delete++;
}
return $no_delete . " no of contents are deleted";
}
else {
return "Content not found !";
}
}
public function getEntityIds($type) {
$nids = [];
$result = $this->connection
->select('node', 'n')
->fields('n', [
'nid',
])
->condition('type', $type, '=')
->execute()
->fetchall();
if (empty($result)) {
return NULL;
}
else {
foreach ($result as $item) {
$nids[] = $item->nid;
}
}
return $nids;
}
public function deleteAllEntity($type) {
$query = $this->entityTypeManager
->getStorage($type)
->getQuery();
$nids = $query
->execute();
$no_delete = 0;
if (!empty($nids)) {
foreach ($nids as $nid) {
$this->entityTypeManager
->getStorage($type)
->load($nid)
->delete();
$no_delete++;
}
return $no_delete . " entities deleted.";
}
else {
return "Nothing to delete.";
}
}
public function deleteAllTerms($type) {
$tids = $this->entityTypeManager
->getStorage('taxonomy_term')
->getQuery()
->condition('vid', $type)
->execute();
if (!empty($tids)) {
$count = count($tids);
$controller = $this->entityTypeManager
->getStorage('taxonomy_term');
$entities = $controller
->loadMultiple($tids);
$controller
->delete($entities);
return $count . " terms deleted.";
}
else {
return "Nothing to delete.";
}
}
}