function ConsoleLogger::interpolate
Interpolates context values into the message placeholders.
@author PHP Framework Interoperability Group
1 call to ConsoleLogger::interpolate()
- ConsoleLogger::log in vendor/
symfony/ console/ Logger/ ConsoleLogger.php
File
-
vendor/
symfony/ console/ Logger/ ConsoleLogger.php, line 99
Class
- ConsoleLogger
- PSR-3 compliant console logger.
Namespace
Symfony\Component\Console\LoggerCode
private function interpolate(string $message, array $context) : string {
if (!str_contains($message, '{')) {
return $message;
}
$replacements = [];
foreach ($context as $key => $val) {
if (null === $val || \is_scalar($val) || $val instanceof \Stringable) {
$replacements["{{$key}}"] = $val;
}
elseif ($val instanceof \DateTimeInterface) {
$replacements["{{$key}}"] = $val->format(\DateTimeInterface::RFC3339);
}
elseif (\is_object($val)) {
$replacements["{{$key}}"] = '[object ' . $val::class . ']';
}
else {
$replacements["{{$key}}"] = '[' . \gettype($val) . ']';
}
}
return strtr($message, $replacements);
}