Drupal 8 信使服务
长期以来,该drupal_set_message()功能一直是Drupal开发的中流砥柱。您可以使用此函数向用户打印消息或错误响应。这很有用,因为它几乎可以在最终页面渲染功能之前的任何地方完成,并且会被打印到Drupal页面的同一区域。
这最近在Drupal8.5.0中被弃用了,所以我一直在寻找如何以一种新的方式做同样的事情。Drupal现在有一个信使服务,由类Drupal\Core\Messenger\Messenger提供支持。这可以使用以下快捷方式包含在您的代码中。
$messenger=\Drupal::messenger();
这可用于向用户打印消息。例如,要打印具有蓝色背景的标准消息,请执行以下操作。
$messenger->addMessage('Messageprintedtoauser.');
这可以像这样在一行中完成。
\Drupal::messenger()->addMessage('Messageprintedtoauser.');
有四种不同类型的消息可用,每一种都与其他相同类型的消息一起打印在不同的颜色背景上。
//绿色状态消息。 $messenger->addStatus('Print a status to the user.'); //蓝色消息。 $messenger->addMessage('Message printed to a user.'); //黄色警告信息。 $messenger->addWarning('A warning about something!'); //红色错误信息。 $messenger->addError('An error happened!');
如果您在Drupal8表单的submitForm()处理程序中,那么您还可以通过表单对象访问信使服务。
$this->messenger()->addMessage($this->t('Formmessage.'));
如果您仍在使用,drupal_set_message()那么我建议您尽快切换到messenger服务,因为它将在Drupal的未来版本中删除。