Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      100.00%  | 
      1 / 1  | 
              | 
      100.00%  | 
      1 / 1  | 
      CRAP |         | 
      100.00%  | 
      12 / 12  | 
     
| LogMessageParser |         | 
      100.00%  | 
      1 / 1  | 
              | 
      100.00%  | 
      1 / 1  | 
      10 |         | 
      100.00%  | 
      12 / 12  | 
     
| parseMessagePlaceholders |         | 
      100.00%  | 
      1 / 1  | 
      10 |         | 
      100.00%  | 
      12 / 12  | 
     |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Logger\LogMessageParser. | |
| */ | |
| namespace Drupal\Core\Logger; | |
| /** | |
| * Parses log messages and their placeholders. | |
| */ | |
| class LogMessageParser implements LogMessageParserInterface { | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function parseMessagePlaceholders(&$message, array &$context) { | |
| $variables = array(); | |
| $has_psr3 = FALSE; | |
| if (($start = strpos($message, '{')) !== FALSE && strpos($message, '}') > $start) { | |
| $has_psr3 = TRUE; | |
| // Transform PSR3 style messages containing placeholders to | |
| // \Drupal\Component\Utility\SafeMarkup::format() style. | |
| $message = preg_replace('/\{(.*)\}/U', '@$1', $message); | |
| } | |
| foreach ($context as $key => $variable) { | |
| // PSR3 style placeholders. | |
| if ($has_psr3) { | |
| // Keys are not prefixed with anything according to PSR3 specs. | |
| // If the message is "User {username} created" the variable key will be | |
| // just "username". | |
| if (strpos($message, '@' . $key) !== FALSE) { | |
| $key = '@' . $key; | |
| } | |
| } | |
| if (!empty($key) && ($key[0] === '@' || $key[0] === '%' || $key[0] === '!')) { | |
| // The key is now in \Drupal\Component\Utility\SafeMarkup::format() style. | |
| $variables[$key] = $variable; | |
| } | |
| } | |
| return $variables; | |
| } | |
| } |