Version 1
[yaffs-website] / vendor / drupal / console-core / src / EventSubscriber / ShowGeneratedFilesListener.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Core\EventSubscriber\ShowGeneratedFilesListener.
6  */
7
8 namespace Drupal\Console\Core\EventSubscriber;
9
10 use Symfony\Component\Console\ConsoleEvents;
11 use Symfony\Component\Console\Event\ConsoleTerminateEvent;
12 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
13 use Symfony\Component\Console\Command\Command;
14 use Drupal\Console\Core\Style\DrupalStyle;
15 use Drupal\Console\Core\Utils\FileQueue;
16 use Drupal\Console\Core\Utils\ShowFile;
17
18 /**
19  * Class ShowGeneratedFilesListener
20  * @package Drupal\Console\Core\EventSubscriber
21  */
22 class ShowGeneratedFilesListener implements EventSubscriberInterface
23 {
24     /**
25      * @var FileQueue
26      */
27     protected $fileQueue;
28
29     /**
30      * @var ShowFile
31      */
32     protected $showFile;
33
34     /**
35      * ShowGeneratedFilesListener constructor.
36      * @param FileQueue $fileQueue
37      * @param ShowFile  $showFile
38      */
39     public function __construct(FileQueue $fileQueue, ShowFile $showFile)
40     {
41         $this->fileQueue = $fileQueue;
42         $this->showFile = $showFile;
43     }
44
45     /**
46      * @param ConsoleTerminateEvent $event
47      */
48     public function showGeneratedFiles(ConsoleTerminateEvent $event)
49     {
50         /* @var Command $command */
51         $command = $event->getCommand();
52         /* @var DrupalStyle $io */
53         $io = new DrupalStyle($event->getInput(), $event->getOutput());
54
55         if ($event->getExitCode() != 0) {
56             return;
57         }
58
59         if ('self-update' == $command->getName()) {
60             return;
61         }
62
63         $files = $this->fileQueue->getFiles();
64         if ($files) {
65             $this->showFile->generatedFiles($io, $files, false);
66         }
67     }
68
69     /**
70      * @{@inheritdoc}
71      */
72     public static function getSubscribedEvents()
73     {
74         return [ConsoleEvents::TERMINATE => 'showGeneratedFiles'];
75     }
76 }