2eca1b9d0392f5f25a76abf657e10aa1f7a9f6e3
[yaffs-website] / vendor / drush / drush / src / Drupal / Commands / core / MessengerCommands.php
1 <?php
2
3 namespace Drush\Drupal\Commands\core;
4
5 use Consolidation\AnnotatedCommand\CommandData;
6 use Drupal\Core\Messenger\MessengerInterface;
7 use Drush\Commands\DrushCommands;
8 use Drush\Drupal\DrupalUtil;
9 use Psr\Log\LoggerAwareInterface;
10 use Psr\Log\LoggerAwareTrait;
11
12 class MessengerCommands extends DrushCommands
13 {
14     protected $messenger;
15
16     /**
17      * @inheritDoc
18      */
19     public function __construct()
20     {
21         if (\Drupal::hasService('messenger')) {
22             // Inject this once Drupal 8.4 becomes unsupported.
23             $this->messenger = \Drupal::messenger();
24         }
25     }
26
27     /**
28      * @hook pre-command *
29      */
30     public function pre()
31     {
32         self::log();
33     }
34
35     /**
36      * @hook post-command *
37      */
38     public function post()
39     {
40         self::log();
41     }
42
43     public function log()
44     {
45         if (!\Drupal::hasService('messenger')) {
46             return;
47         }
48
49         $prefix = 'Message: ';
50         foreach ($this->messenger->messagesByType(MessengerInterface::TYPE_ERROR) as $message) {
51             $this->logger()->error($prefix . DrupalUtil::drushRender($message));
52         }
53         foreach ($this->messenger->messagesByType(MessengerInterface::TYPE_WARNING) as $message) {
54             $this->logger()->warning($prefix . DrupalUtil::drushRender($message));
55         }
56         foreach ($this->messenger->messagesByType(MessengerInterface::TYPE_STATUS) as $message) {
57             $this->logger()->notice($prefix . DrupalUtil::drushRender($message));
58         }
59         $this->messenger->deleteAll();
60     }
61 }