use Drupal\Core\Access\AccessResult;
use Drupal\Core\Cache\CacheableResponse;
use Drupal\Core\Controller\ControllerBase;
+use Drupal\Core\Messenger\MessengerInterface;
use Drupal\Core\Render\RendererInterface;
use Drupal\Core\Render\Markup;
use Drupal\Core\Session\AccountInterface;
*/
protected $renderer;
+ /**
+ * The messenger service.
+ *
+ * @var \Drupal\Core\Messenger\MessengerInterface
+ */
+ protected $messenger;
+
/**
* Constructs the SystemTestController.
*
* The current user.
* @param \Drupal\Core\Render\RendererInterface $renderer
* The renderer.
+ * @param \Drupal\Core\Messenger\MessengerInterface $messenger
+ * The messenger service.
*/
- public function __construct(LockBackendInterface $lock, LockBackendInterface $persistent_lock, AccountInterface $current_user, RendererInterface $renderer) {
+ public function __construct(LockBackendInterface $lock, LockBackendInterface $persistent_lock, AccountInterface $current_user, RendererInterface $renderer, MessengerInterface $messenger) {
$this->lock = $lock;
$this->persistentLock = $persistent_lock;
$this->currentUser = $current_user;
$this->renderer = $renderer;
+ $this->messenger = $messenger;
}
/**
$container->get('lock'),
$container->get('lock.persistent'),
$container->get('current_user'),
- $container->get('renderer')
+ $container->get('renderer'),
+ $container->get('messenger')
);
}
// Set two messages.
drupal_set_message('First message (removed).');
drupal_set_message(t('Second message with <em>markup!</em> (not removed).'));
-
+ $messages = $this->messenger->deleteByType('status');
// Remove the first.
- unset($_SESSION['messages']['status'][0]);
+ unset($messages[0]);
+
+ foreach ($messages as $message) {
+ $this->messenger->addStatus($message);
+ }
// Duplicate message check.
drupal_set_message('Non Duplicated message', 'status', FALSE);