Yaffs site version 1.1
[yaffs-website] / vendor / drupal / console-core / src / EventSubscriber / ShowWelcomeMessageListener.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Core\EventSubscriber\ShowWelcomeMessageListener.
6  */
7
8 namespace Drupal\Console\Core\EventSubscriber;
9
10 use Symfony\Component\Console\ConsoleEvents;
11 use Symfony\Component\Console\Event\ConsoleCommandEvent;
12 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
13 use Symfony\Component\Console\Command\Command;
14 use Drupal\Console\Core\Utils\TranslatorManagerInterface;
15 use Drupal\Console\Core\Style\DrupalStyle;
16
17 /**
18  * Class ShowWelcomeMessageListener
19  *
20  * @package Drupal\Console\Core\EventSubscriber
21  */
22 class ShowWelcomeMessageListener implements EventSubscriberInterface
23 {
24     /**
25      * @var TranslatorManagerInterface
26      */
27     protected $translator;
28
29     /**
30      * ShowWelcomeMessageListener constructor.
31      *
32      * @param TranslatorManagerInterface $translator
33      */
34     public function __construct(
35         TranslatorManagerInterface $translator
36     ) {
37         $this->translator = $translator;
38     }
39
40     /**
41      * @param ConsoleCommandEvent $event
42      */
43     public function showWelcomeMessage(ConsoleCommandEvent $event)
44     {
45         /* @var Command $command */
46         $command = $event->getCommand();
47
48         /* @var DrupalStyle $io */
49         $io = new DrupalStyle($event->getInput(), $event->getOutput());
50
51         $welcomeMessageKey = 'commands.'.str_replace(':', '.', $command->getName()).'.welcome';
52         $welcomeMessage = $this->translator->trans($welcomeMessageKey);
53
54         if ($welcomeMessage != $welcomeMessageKey) {
55             $io->text($welcomeMessage);
56         }
57     }
58
59     /**
60      * @{@inheritdoc}
61      */
62     public static function getSubscribedEvents()
63     {
64         return [ConsoleEvents::COMMAND => 'showWelcomeMessage'];
65     }
66 }