Skip to content
Snippets Groups Projects

Modernize Drush integration

3 unresolved threads
5 files
+ 18
40
Compare changes
  • Side-by-side
  • Inline
Files
5
<?php
namespace Drupal\entity_reference_revisions\Commands;
namespace Drupal\entity_reference_revisions\Drush\Commands;
use Consolidation\AnnotatedCommand\Hooks\HookManager;
use Drupal\entity_reference_revisions\EntityReferenceRevisionsOrphanPurger;
use Drush\Commands\AutowireTrait;
use Drush\Commands\DrushCommands;
use Drush\Drush;
use Drush\Utils\StringUtils;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
/**
* A Drush commandfile.
*/
class EntityReferenceRevisionsCommands extends DrushCommands {
final class EntityReferenceRevisionsCommands extends DrushCommands {
/**
* The purger service.
*
* @var \Drupal\entity_reference_revisions\EntityReferenceRevisionsOrphanPurger
*/
protected $purger;
use AutowireTrait;
/**
* Constructs a ERRCommands object.
*
* @param \Drupal\entity_reference_revisions\EntityReferenceRevisionsOrphanPurger $purger
*/
public function __construct(EntityReferenceRevisionsOrphanPurger $purger) {
$this->purger = $purger;
public function __construct(
#[Autowire(service: 'entity_reference_revisions.orphan_purger')]
protected EntityReferenceRevisionsOrphanPurger $purger
) {
parent::__construct();
}
/**
* Orphan composite revision deletion.
*
* @param $types
* A comma delimited list of entity types to check for orphans. Omit to
* choose from a list.
* @usage drush err:purge paragraph
* Purge orphaned paragraphs.
*
* @command err:purge
* @aliases errp
*/
#[CLI\Command(name: 'err:purge', aliases: ['errp'])]
Please register or sign in to reply
#[CLI\Argument(name: 'types', description: 'A comma delimited list of entity types to check for orphans. Omit to choose from a list.')]
#[CLI\Usage(name: 'drush err:purge paragraph', description: 'Purge orphaned paragraphs.')]
public function purge($types) {
$this->purger->setBatch(StringUtils::csvToArray($types));
drush_backend_batch_process();
}
/**
* @hook interact err:purge
*/
#[CLI\Hook(type: HookManager::INTERACT, target: 'err:purge')]
public function interact($input, $output) {
if (empty($input->getArgument('types'))) {
$choices = [];
Loading