DevelGenerateCommands.php
Namespace
Drupal\devel_generate\Drush\Commands
File
-
devel_generate/src/Drush/Commands/DevelGenerateCommands.php
View source
<?php
namespace Drupal\devel_generate\Drush\Commands;
use Consolidation\AnnotatedCommand\CommandData;
use Consolidation\AnnotatedCommand\Hooks\HookManager;
use Drupal\devel_generate\Attributes\Generator;
use Drupal\devel_generate\DevelGenerateBaseInterface;
use Drupal\devel_generate\DevelGeneratePluginManager;
use Drush\Attributes as CLI;
use Drush\Commands\AutowireTrait;
use Drush\Commands\DrushCommands;
final class DevelGenerateCommands extends DrushCommands {
use AutowireTrait;
const USERS = 'devel-generate:users';
const TERMS = 'devel-generate:terms';
const VOCABS = 'devel-generate:vocabs';
const MENUS = 'devel-generate:menus';
const CONTENT = 'devel-generate:content';
const BLOCK_CONTENT = 'devel-generate:block-content';
const MEDIA = 'devel-generate:media';
private DevelGenerateBaseInterface $pluginInstance;
private array $parameters;
public function __construct(protected DevelGeneratePluginManager $manager) {
parent::__construct();
$this->setManager($manager);
}
public function getManager() : DevelGeneratePluginManager {
return $this->manager;
}
public function setManager(DevelGeneratePluginManager $manager) : void {
$this->manager = $manager;
}
public function getPluginInstance() : DevelGenerateBaseInterface {
return $this->pluginInstance;
}
public function setPluginInstance(mixed $pluginInstance) : void {
$this->pluginInstance = $pluginInstance;
}
public function getParameters() : array {
return $this->parameters;
}
public function setParameters(array $parameters) : void {
$this->parameters = $parameters;
}
public function users(string|int $num = 50, array $options = [
'kill' => FALSE,
'roles' => self::REQ,
]) : void {
$this->generate();
}
public function terms(?string $num = '50', array $options = [
'kill' => FALSE,
'bundles' => self::REQ,
'feedback' => '1000',
'languages' => self::REQ,
'translations' => self::REQ,
'min-depth' => '1',
'max-depth' => '4',
]) : void {
$this->generate();
}
public function vocabs(?string $num = '1', array $options = [
'kill' => FALSE,
]) : void {
$this->generate();
}
public function menus(?string $number_menus = '2', ?string $number_links = '50', ?string $max_depth = '3', string $max_width = '8', array $options = [
'kill' => FALSE,
]) : void {
$this->generate();
}
public function content(string $num = '50', ?string $max_comments = '0', array $options = [
'kill' => FALSE,
'bundles' => 'page,article',
'authors' => self::REQ,
'roles' => self::REQ,
'feedback' => 1000,
'skip-fields' => self::REQ,
'base-fields' => self::REQ,
'languages' => self::REQ,
'translations' => self::REQ,
'add-type-label' => FALSE,
]) : void {
$this->generate();
}
public function blockContent(?string $num = '50', array $options = [
'kill' => FALSE,
'block_types' => 'basic',
'feedback' => 1000,
'skip-fields' => self::REQ,
'base-fields' => self::REQ,
'languages' => self::REQ,
'translations' => self::REQ,
'add-type-label' => FALSE,
'reusable' => TRUE,
]) : void {
$this->generate();
}
public function media(?string $num = '50', array $options = [
'kill' => FALSE,
'media-types' => self::REQ,
'feedback' => 1000,
'skip-fields' => self::REQ,
'languages' => self::REQ,
'base-fields' => self::REQ,
]) : void {
$this->generate();
}
public function validate(CommandData $commandData) : void {
$manager = $this->manager;
$args = $commandData->input()
->getArguments();
array_shift($args);
$instance = $manager->createInstance($commandData->annotationData()
->get('pluginId'), []);
$this->setPluginInstance($instance);
$parameters = $instance->validateDrushParams($args, $commandData->input()
->getOptions());
$this->setParameters($parameters);
}
public function generate() : void {
$instance = $this->pluginInstance;
$instance->generate($this->parameters);
}
}
Classes
| Title |
Deprecated |
Summary |
| DevelGenerateCommands |
|
Provide Drush commands for all the core Devel Generate plugins. |