[ 'class' => 'success', 'header' => 'Succès !', 'message' => '' ], 'error' => [ 'class' => 'danger', 'header' => 'Error !', 'message' => '' ], 'warning' => [ 'class' => 'warning', 'header' => 'Attention !', 'message' => '' ], ]; public string $type; public string $message; public string $class; public ? string $header = null; public function __construct(string $message, string $type = "error", ? string $header = null, ? string $class = null) { $this->message = $message; $this->type = $type; if ( $header !== null ) { $this->header = $header; } else { $this->header = static::MESSAGE_TYPE[$type]['header']; } if ( $class !== null ) { $this->class = $class; } else { $this->class = static::MESSAGE_TYPE[$type]['class']; } } public function render() : string { return <<
{$this->header} {$this->message}
HTML; } public function renderJson() : array { return [ 'name' => 'show-notification', 'type' => [ 'error' => 'danger', 'success' => 'success', 'warning' => 'warning', ][$this->type], 'shake' => '.wrapper', 'message' => $this->message, ]; } public function isError() : bool { return $this->type === "error"; } public static function generateSuccess(string $message, ? string $header = null, ? string $class = null) : self { return new static($message, 'success', $header, $class); } public static function generateError(string $message, ? string $header = null, ? string $class = null) : self { return new static($message, 'error', $header, $class); } public static function generateWarning(string $message, ? string $header = null, ? string $class = null) : self { return new static($message, 'warning', $header, $class); } }