diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index 9f46bb4129..6d985be913 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -461,15 +461,8 @@ function watchdog_exception($type, Exception $exception, $message = NULL, $varia * Use \Drupal::service('messenger')->addMessage() instead. */ function drupal_set_message($message = NULL, $type = 'status', $repeat = FALSE) { - // This function might be called early on in the installer, so we check - // whether the service exists. /* @var \Drupal\Core\Messenger\MessengerInterface $messenger */ - if (\Drupal::hasService('messenger')) { - $messenger = \Drupal::service('messenger'); - } - else { - $messenger = new LegacyMessenger(); - } + $messenger = \Drupal::service('messenger'); $messenger->addMessage($message, $type, $repeat); return $messenger->all(); } @@ -502,6 +495,8 @@ function drupal_set_message($message = NULL, $type = 'status', $repeat = FALSE) * @deprecated in Drupal 8.5.0, will be removed before Drupal 9.0.0. * Use \Drupal::service('messenger')->getMessages() or * \Drupal::service('messenger')->getMessagesByType() instead. + * + * @see https://www.drupal.org/node/2774931 */ function drupal_get_messages($type = NULL, $clear_queue = TRUE) { /** @var \Drupal\Core\Messenger\MessengerInterface $messenger */ diff --git a/core/lib/Drupal/Core/Messenger/LegacyMessenger.php b/core/lib/Drupal/Core/Messenger/LegacyMessenger.php index 50a51e6b9e..93821313b3 100644 --- a/core/lib/Drupal/Core/Messenger/LegacyMessenger.php +++ b/core/lib/Drupal/Core/Messenger/LegacyMessenger.php @@ -3,6 +3,7 @@ namespace Drupal\Core\Messenger; use Drupal\Component\Render\MarkupInterface; +use Drupal\Core\PageCache\ResponsePolicy\KillSwitch; use Drupal\Core\Render\Markup; /** @@ -14,6 +15,23 @@ class LegacyMessenger implements MessengerInterface { /** + * The page cache kill switch. + * + * @var \Drupal\Core\PageCache\ResponsePolicy\KillSwitch + */ + protected $killSwitch; + + /** + * LegacyMessenger constructor. + * + * @param \Drupal\Core\PageCache\ResponsePolicy\KillSwitch $killSwitch + * (optional) The page cache kill switch. + */ + public function __construct(KillSwitch $killSwitch) { + $this->killSwitch = $killSwitch; + } + + /** * {@inheritdoc} */ public function addMessage($message, $type = self::TYPE_STATUS, $repeat = FALSE) { @@ -118,7 +136,7 @@ public function deleteByType($type) { * @endcode * If there are no messages set, the function returns NULL. * - * @internal + * @internal */ private function setMessage($message = NULL, $type = 'status', $repeat = FALSE) { if (isset($message)) { @@ -138,7 +156,7 @@ private function setMessage($message = NULL, $type = 'status', $repeat = FALSE) } // Mark this page as being uncacheable. - \Drupal::service('page_cache_kill_switch')->trigger(); + $this->killSwitch->trigger(); } // Messages not set when DB connection fails.