From 2038d50110468d95ff978ba2e8f997175f25ff3b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 15 May 2023 19:26:48 +0200 Subject: PHPStan Level 7 for Minz_Request, FreshRSS_Feed, Minz_Error (#5400) * PHPStan Level 7 for Minz_Request * PHPStan Level 7 for FreshRSS_Feed * PHPStan Level 7 for Minz_Error --- lib/Minz/Error.php | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) (limited to 'lib/Minz/Error.php') diff --git a/lib/Minz/Error.php b/lib/Minz/Error.php index 15be7b8b4..b6eac5174 100644 --- a/lib/Minz/Error.php +++ b/lib/Minz/Error.php @@ -8,34 +8,32 @@ * The Minz_Error class logs and raises framework errors */ class Minz_Error { - public function __construct () { } + public function __construct() { } /** * Permet de lancer une erreur * @param int $code le type de l'erreur, par défaut 404 (page not found) - * @param array|array> $logs logs d'erreurs découpés de la forme + * @param string|array<'error'|'warning'|'notice',array> $logs logs d'erreurs découpés de la forme * > $logs['error'] * > $logs['warning'] * > $logs['notice'] * @param bool $redirect indique s'il faut forcer la redirection (les logs ne seront pas transmis) */ - public static function error(int $code = 404, array $logs = [], bool $redirect = true): void { - $logs = self::processLogs ($logs); + public static function error(int $code = 404, $logs = [], bool $redirect = true): void { + $logs = self::processLogs($logs); $error_filename = APP_PATH . '/Controllers/errorController.php'; - if (file_exists ($error_filename)) { + if (file_exists($error_filename)) { Minz_Session::_params([ 'error_code' => $code, 'error_logs' => $logs, ]); - Minz_Request::forward (array ( - 'c' => 'error' - ), $redirect); + Minz_Request::forward(['c' => 'error'], $redirect); } else { echo '

An error occurred

' . "\n"; - if (!empty ($logs)) { + if (!empty($logs)) { echo '
    ' . "\n"; foreach ($logs as $log) { echo '
  • ' . $log . '
  • ' . "\n"; @@ -43,40 +41,40 @@ class Minz_Error { echo '
' . "\n"; } - exit (); + exit(); } } /** * Returns filtered logs - * @param array|string $logs logs sorted by category (error, warning, notice) + * @param string|array<'error'|'warning'|'notice',array> $logs logs sorted by category (error, warning, notice) * @return array list of matching logs, without the category, according to environment preferences (production / development) */ private static function processLogs($logs): array { - $conf = Minz_Configuration::get('system'); - $env = $conf->environment; - $logs_ok = array (); - $error = array (); - $warning = array (); - $notice = array (); + if (is_string($logs)) { + return [$logs]; + } + + $error = []; + $warning = []; + $notice = []; - if (isset ($logs['error'])) { + if (isset($logs['error']) && is_array($logs['error'])) { $error = $logs['error']; } - if (isset ($logs['warning'])) { + if (isset($logs['warning']) && is_array($logs['warning'])) { $warning = $logs['warning']; } - if (isset ($logs['notice'])) { + if (isset($logs['notice']) && is_array($logs['notice'])) { $notice = $logs['notice']; } - if ($env == 'production') { - $logs_ok = $error; + switch (Minz_Configuration::get('system')->environment) { + case 'development': + return array_merge($error, $warning, $notice); + case 'production': + default: + return $error; } - if ($env == 'development') { - $logs_ok = array_merge ($error, $warning, $notice); - } - - return $logs_ok; } } -- cgit v1.2.3