Yaffs site version 1.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  *
21  * @package Drupal\Console\Core\EventSubscriber
22  */
23 class ShowGeneratedFilesListener implements EventSubscriberInterface
24 {
25     /**
26      * @var FileQueue
27      */
28     protected $fileQueue;
29
30     /**
31      * @var ShowFile
32      */
33     protected $showFile;
34
35     /**
36      * ShowGeneratedFilesListener constructor.
37      *
38      * @param FileQueue $fileQueue
39      * @param ShowFile  $showFile
40      */
41     public function __construct(FileQueue $fileQueue, ShowFile $showFile)
42     {
43         $this->fileQueue = $fileQueue;
44         $this->showFile = $showFile;
45     }
46
47     /**
48      * @param ConsoleTerminateEvent $event
49      */
50     public function showGeneratedFiles(ConsoleTerminateEvent $event)
51     {
52         /* @var Command $command */
53         $command = $event->getCommand();
54         /* @var DrupalStyle $io */
55         $io = new DrupalStyle($event->getInput(), $event->getOutput());
56
57         if ($event->getExitCode() != 0) {
58             return;
59         }
60
61         if ('self-update' == $command->getName()) {
62             return;
63         }
64
65         $files = $this->fileQueue->getFiles();
66         if ($files) {
67             $this->showFile->generatedFiles($io, $files, false);
68         }
69     }
70
71     /**
72      * @{@inheritdoc}
73      */
74     public static function getSubscribedEvents()
75     {
76         return [ConsoleEvents::TERMINATE => 'showGeneratedFiles'];
77     }
78 }