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