ErrorException [ 8 ]: Array to string conversion ~ SYSPATH/classes/Kohana/Log/Writer.php [ 81 ]
Версия Kohana 3.3.

ErrorException [ 8 ]: Array to string conversion ~ SYSPATH/classes/Kohana/Log/Writer.php [ 81 ] Версия Kohana 3.3.
|
||||
|
|
|
Эта баг фреймворка Kohana версии 3.3! Пофиксить просто (заменить две строки в Log/Writer.php). 1. Заменяем строку $string = strtr($format, $message); на строку: $string = strtr($format, array_filter($message, 'is_scalar'));
2. А также заменяем строку
$string .= PHP_EOL.strtr($format, $message); на строку: $string .= PHP_EOL.strtr($format, array_filter($message, 'is_scalar')); https://github.com/kohana/core/commit/82b470b2827470da37b0e6771b77c369c3d2e5fb Kohana/Log/Writer.php (здесь см. строки 13, 22):
/**
* Formats a log entry.
*
* @param array $message
* @param string $format
* @return string
*/
public function format_message(array $message, $format = "time --- level: body in file:line")
{
$message['time'] = Date::formatted_time('@'.$message['time'], Log_Writer::$timestamp, Log_Writer::$timezone, TRUE);
$message['level'] = $this->_log_levels[$message['level']];
//$string = strtr($format, $message);
$string = strtr($format, array_filter($message, 'is_scalar'));
if (isset($message['additional']['exception']))
{
// Re-use as much as possible, just resetting the body to the trace
$message['body'] = $message['additional']['exception']->getTraceAsString();
$message['level'] = $this->_log_levels[Log_Writer::$strace_level];
//$string .= PHP_EOL.strtr($format, $message); //эту строку меняем на следующую
$string .= PHP_EOL.strtr($format, array_filter($message, 'is_scalar'));
}
return $string;
}
|
||||
|
|