private function log(string $method, array $params, $result)
{
// Log only if a filename is set
if (!empty($this->logFile)) {
// If a callback function is defined, call it
if (!empty($this->logCallback)) {
list($method, $params, $result) = call_user_func($this->logCallback, $method, $params, $result);
}
// Method
$text = sprintf("Method: %s\n", $method);
// Parameters
foreach ($params as $paramName => $param) {
$text .= sprintf("Param %s: %s\n", $paramName, trim(print_r($param, true)));
}
// Result
$text .= sprintf("Result: %s\n", trim(print_r($result, true)));
// Indent following lines
$text = strtr(trim($text), ["\n" => "\n\t"]);
// Time, ip address, hostname, uri
$text = sprintf("[%s] %s %s %s\n\t%s\n", date('Y-m-d H:i:s'), $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'], $text);
// Save into logfile
file_put_contents($this->logFile, $text, FILE_APPEND);
}
}