Change record status: 
Project: 
Introduced in branch: 
8.0.x
Description: 

The default fallthrough to %variable has been removed from FormattableMarkup::placeholderFormat().

The currently defined placeholders for FormattableMarkup (SafeMarkup::format()) and TranslatableMarkup (t()) are:

  • @variable
  • %variable
  • :variable

It used to be the case that any other placeholder (e.g. #variable, !variable, *variable, ...) could be used, which would fall back to a %variable-style replacement. Instead, a trigger_error() is now invoked when another placeholder is used, and the placeholder will not be replaced anymore.

New behavior in Drupal 8.2.0 for variable placeholders

Prior to Drupal 8.2.0, placeholders beginning with an alphabetic character (e.g. variable) were unintentionally supported. Following 8.2.0, this support is removed, and such placeholders will not be replaced. Additionally, a deprecation notice will be raised so that developers can locate any affected usages and correct them.

Impacts: 
Module developers