Version 1
[yaffs-website] / vendor / drupal / console / src / Generator / CommandGenerator.php
diff --git a/vendor/drupal/console/src/Generator/CommandGenerator.php b/vendor/drupal/console/src/Generator/CommandGenerator.php
new file mode 100644 (file)
index 0000000..ff01bd5
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Console\Generator\CommandGenerator.
+ */
+
+namespace Drupal\Console\Generator;
+
+use Drupal\Console\Extension\Manager;
+use Drupal\Console\Core\Utils\TranslatorManagerInterface;
+use Drupal\Console\Core\Generator\Generator;
+
+/**
+ * Class CommandGenerator
+ *
+ * @package Drupal\Console\Generator
+ */
+class CommandGenerator extends Generator
+{
+    /**
+     * @var Manager
+     */
+    protected $extensionManager;
+
+    /**
+     * @var TranslatorManagerInterface
+     */
+    protected $translatorManager;
+
+    /**
+     * CommandGenerator constructor.
+     *
+     * @param Manager                    $extensionManager
+     * @param TranslatorManagerInterface $translatorManager
+     */
+    public function __construct(
+        Manager $extensionManager,
+        TranslatorManagerInterface $translatorManager
+    ) {
+        $this->extensionManager = $extensionManager;
+        $this->translatorManager = $translatorManager;
+    }
+
+    /**
+     * Generate.
+     *
+     * @param string  $extension      Extension name
+     * @param string  $extensionType  Extension type
+     * @param string  $name           Command name
+     * @param string  $class          Class name
+     * @param boolean $containerAware Container Aware command
+     * @param array   $services       Services array
+     */
+    public function generate($extension, $extensionType, $name, $class, $containerAware, $services)
+    {
+        $command_key = str_replace(':', '.', $name);
+
+        $extensionObject = $this->extensionManager->getDrupalExtension($extensionType, $extension);
+
+        $parameters = [
+            'extension' => $extension,
+            'extensionType' => $extensionType,
+            'name' => $name,
+            'class_name' => $class,
+            'container_aware' => $containerAware,
+            'command_key' => $command_key,
+            'services' => $services,
+            'tags' => ['name' => 'drupal.command'],
+            'class_path' => sprintf('Drupal\%s\Command\%s', $extension, $class),
+            'file_exists' => file_exists($extensionObject->getPath().'/console.services.yml'),
+        ];
+
+        $this->renderFile(
+            'module/src/Command/command.php.twig',
+            $extensionObject->getCommandDirectory().$class.'.php',
+            $parameters
+        );
+
+        $parameters['name'] = $extension.'.'.str_replace(':', '_', $name);
+
+        $this->renderFile(
+            'module/services.yml.twig',
+            $extensionObject->getPath() .'/console.services.yml',
+            $parameters,
+            FILE_APPEND
+        );
+
+        $this->renderFile(
+            'module/src/Command/console/translations/en/command.yml.twig',
+            $extensionObject->getPath().'/console/translations/en/'.$command_key.'.yml'
+        );
+    }
+}