encodeData($data) . ')'; } /** * Encodes complex log data into JSON format string. * * @param mixed $data raw data. * * @return string encoded data string. */ public function encodeData($data) { return json_encode($this->processData($data)); } /** * Pre-processes the log data before sending it to `json_encode()`. * * @param mixed $data raw data. * * @return mixed the processed data. */ protected function processData($data) { if (is_object($data)) { $result = []; foreach ($data as $name => $value) { $result[ $name ] = $value; } $data = $result; if ($data === []) { return new \stdClass(); } } if (is_array($data)) { foreach ($data as $key => $value) { if (is_array($value) || is_object($value)) { $data[ $key ] = $this->processData($value); } } } return $data; } }