= $minLength; if (!$isValid) { Logger::warning("[WARNING] String is shorter than minimum length: $string"); } return $isValid; } catch (\Throwable $e) { ErrorHandler::exception($e); return false; } } /** * Check if a string has a maximum length. * * @param string $string The string to check. * @param int $maxLength The maximum length. * @return bool True if the string meets the maximum length, false otherwise. */ public static function hasMaxLength(string $string, int $maxLength): bool { try { Logger::info("[DEBUG] Checking if string has maximum length: $maxLength"); $isValid = strlen($string) <= $maxLength; if (!$isValid) { Logger::warning("[WARNING] String exceeds maximum length: $string"); } return $isValid; } catch (\Throwable $e) { ErrorHandler::exception($e); return false; } } /** * Validate a string length. * * @param string $input The string to validate. * @param int $min Minimum length. * @param int $max Maximum length. * @return bool True if the string length is valid, false otherwise. */ public static function validateStringLength(string $input, int $min, int $max): bool { try { Logger::info("[DEBUG] Validating string length: Input='$input', Min=$min, Max=$max"); $length = strlen($input); $isValid = $length >= $min && $length <= $max; if (!$isValid) { Logger::warning("[WARNING] Invalid string length: $length (Expected between $min and $max)"); } return $isValid; } catch (\Throwable $e) { ErrorHandler::exception($e); return false; } } /** * Validate a boolean value. * * @param mixed $input The input to validate as a boolean. * @return bool True if the input is a valid boolean, false otherwise. */ public static function validateBoolean($input): bool { try { Logger::info("[DEBUG] Validating boolean input: $input"); $isValid = is_bool(filter_var($input, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)); if (!$isValid) { Logger::warning("[WARNING] Invalid boolean input: $input"); } return $isValid; } catch (\Throwable $e) { ErrorHandler::exception($e); return false; } } /** * Validate a date format. * * @param string $date The date string to validate. * @param string $format The expected date format (e.g., 'Y-m-d'). * @return bool True if the date matches the format, false otherwise. */ public static function validateDate(string $date, string $format = 'Y-m-d'): bool { try { Logger::info("[DEBUG] Validating date: $date with format: $format"); $dateTime = \DateTime::createFromFormat($format, $date); $isValid = $dateTime && $dateTime->format($format) === $date; if (!$isValid) { Logger::warning("[WARNING] Invalid date: $date (Expected format: $format)"); } return $isValid; } catch (\Throwable $e) { ErrorHandler::exception($e); return false; } } }