3 namespace Drush\Drupal\Commands\core;
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;
12 class MessengerCommands extends DrushCommands
19 public function __construct()
21 if (\Drupal::hasService('messenger')) {
22 // Inject this once Drupal 8.4 becomes unsupported.
23 $this->messenger = \Drupal::messenger();
36 * @hook post-command *
38 public function post()
45 if (!\Drupal::hasService('messenger')) {
49 $prefix = 'Message: ';
50 foreach ($this->messenger->messagesByType(MessengerInterface::TYPE_ERROR) as $message) {
51 $this->logger()->error($prefix . DrupalUtil::drushRender($message));
53 foreach ($this->messenger->messagesByType(MessengerInterface::TYPE_WARNING) as $message) {
54 $this->logger()->warning($prefix . DrupalUtil::drushRender($message));
56 foreach ($this->messenger->messagesByType(MessengerInterface::TYPE_STATUS) as $message) {
57 $this->logger()->notice($prefix . DrupalUtil::drushRender($message));
59 $this->messenger->deleteAll();