Version 1
[yaffs-website] / vendor / drupal / console-core / src / EventSubscriber / ShowWelcomeMessageListener.php
diff --git a/vendor/drupal/console-core/src/EventSubscriber/ShowWelcomeMessageListener.php b/vendor/drupal/console-core/src/EventSubscriber/ShowWelcomeMessageListener.php
new file mode 100644 (file)
index 0000000..a7ab76c
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Console\Core\EventSubscriber\ShowWelcomeMessageListener.
+ */
+
+namespace Drupal\Console\Core\EventSubscriber;
+
+use Symfony\Component\Console\ConsoleEvents;
+use Symfony\Component\Console\Event\ConsoleCommandEvent;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Symfony\Component\Console\Command\Command;
+use Drupal\Console\Core\Utils\TranslatorManagerInterface;
+use Drupal\Console\Core\Style\DrupalStyle;
+
+/**
+ * Class ShowWelcomeMessageListener
+ *
+ * @package Drupal\Console\Core\EventSubscriber
+ */
+class ShowWelcomeMessageListener implements EventSubscriberInterface
+{
+    /**
+     * @var TranslatorManagerInterface
+     */
+    protected $translator;
+
+    /**
+     * ShowWelcomeMessageListener constructor.
+     *
+     * @param TranslatorManagerInterface $translator
+     */
+    public function __construct(
+        TranslatorManagerInterface $translator
+    ) {
+        $this->translator = $translator;
+    }
+
+    /**
+     * @param ConsoleCommandEvent $event
+     */
+    public function showWelcomeMessage(ConsoleCommandEvent $event)
+    {
+        /* @var Command $command */
+        $command = $event->getCommand();
+
+        /* @var DrupalStyle $io */
+        $io = new DrupalStyle($event->getInput(), $event->getOutput());
+
+        $welcomeMessageKey = 'commands.'.str_replace(':', '.', $command->getName()).'.welcome';
+        $welcomeMessage = $this->translator->trans($welcomeMessageKey);
+
+        if ($welcomeMessage != $welcomeMessageKey) {
+            $io->text($welcomeMessage);
+        }
+    }
+
+    /**
+     * @{@inheritdoc}
+     */
+    public static function getSubscribedEvents()
+    {
+        return [ConsoleEvents::COMMAND => 'showWelcomeMessage'];
+    }
+}