} } class FlashLogger { public function error($message) { $this->flash('error', $message); } public function information($message) { $this->flash('message', $message); } public function success($message) { $this->flash('success', $message); } public function dump() { } private function flash($id, $message) { if (flash_empty($id)) { flash($id, $message); } else { $current_flash = get_flash($id); flash($id, $current_flash . '<br>' . $message); } } } LoggerService::$logger = new FlashLogger();
class SilentLogger { public $errors = []; public $informations = []; public $successes = []; public function error($message) { $this->errors[] = $message; } public function information($message) { $this->informations[] = $message; } public function success($message) { $this->successes[] = $message; } public function dump() { foreach (['errors' => $this->errors, 'information' => $this->informations, 'successes' => $this->successes] as $type => $logs) { if (count($logs)) { echo $type . ':'; echo "\n"; echo implode("\n", $logs); } } } } LoggerService::$logger = new SilentLogger();