3 * Zend Framework (http://framework.zend.com/)
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
10 namespace Zend\Log\Formatter
;
14 class ErrorHandler
extends Simple
16 const DEFAULT_FORMAT
= '%timestamp% %priorityName% (%priority%) %message% (errno %extra[errno]%) in %extra[file]% on line %extra[line]%';
19 * This method formats the event for the PHP Error Handler.
24 public function format($event)
26 $output = $this->format
;
28 if (isset($event['timestamp']) && $event['timestamp'] instanceof DateTime
) {
29 $event['timestamp'] = $event['timestamp']->format($this->getDateTimeFormat());
32 foreach ($this->buildReplacementsFromArray($event) as $name => $value) {
33 $output = str_replace("%$name%", $value, $output);
40 * Flatten the multi-dimensional $event array into a single dimensional
47 protected function buildReplacementsFromArray($event, $key = null)
50 foreach ($event as $index => $value) {
51 $nextIndex = $key === null ?
$index : $key . '[' . $index . ']';
52 if ($value === null) {
55 if (! is_array($value)) {
57 $result[$nextIndex] = $value;
59 if (! is_object($value) ||
method_exists($value, "__toString")) {
60 $result[$nextIndex] = $value;
64 $result = array_merge($result, $this->buildReplacementsFromArray($value, $nextIndex));