5 * Contains \Drupal\Console\Generator\CommandGenerator.
8 namespace Drupal\Console\Generator;
10 use Drupal\Console\Extension\Manager;
11 use Drupal\Console\Core\Utils\TranslatorManagerInterface;
12 use Drupal\Console\Core\Generator\Generator;
15 * Class CommandGenerator
17 * @package Drupal\Console\Generator
19 class CommandGenerator extends Generator
24 protected $extensionManager;
27 * @var TranslatorManagerInterface
29 protected $translatorManager;
32 * CommandGenerator constructor.
34 * @param Manager $extensionManager
35 * @param TranslatorManagerInterface $translatorManager
37 public function __construct(
38 Manager $extensionManager,
39 TranslatorManagerInterface $translatorManager
41 $this->extensionManager = $extensionManager;
42 $this->translatorManager = $translatorManager;
48 * @param string $extension Extension name
49 * @param string $extensionType Extension type
50 * @param string $name Command name
51 * @param string $class Class name
52 * @param boolean $containerAware Container Aware command
53 * @param array $services Services array
55 public function generate($extension, $extensionType, $name, $class, $containerAware, $services)
57 $command_key = str_replace(':', '.', $name);
59 $extensionObject = $this->extensionManager->getDrupalExtension($extensionType, $extension);
62 'extension' => $extension,
63 'extensionType' => $extensionType,
65 'class_name' => $class,
66 'container_aware' => $containerAware,
67 'command_key' => $command_key,
68 'services' => $services,
69 'tags' => ['name' => 'drupal.command'],
70 'class_path' => sprintf('Drupal\%s\Command\%s', $extension, $class),
71 'file_exists' => file_exists($extensionObject->getPath().'/console.services.yml'),
75 'module/src/Command/command.php.twig',
76 $extensionObject->getCommandDirectory().$class.'.php',
80 $parameters['name'] = $extension.'.'.str_replace(':', '_', $name);
83 'module/services.yml.twig',
84 $extensionObject->getPath() .'/console.services.yml',
90 'module/src/Command/console/translations/en/command.yml.twig',
91 $extensionObject->getPath().'/console/translations/en/'.$command_key.'.yml'