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; | |
} | |
} |