WizdomWeb/app/Utils/Sanitizer.php

92 lines
2.8 KiB
PHP

<?php
namespace WizdomNetworks\WizeWeb\Utils;
use WizdomNetworks\WizeWeb\Utils\Logger;
use WizdomNetworks\WizeWeb\Utils\ErrorHandler;
/**
* Sanitizer Utility
*
* Provides methods for sanitizing various types of data, including strings, emails, URLs, and arrays.
* Logs sanitized data for debugging and traceability.
*/
class Sanitizer
{
/**
* Sanitizes a string by removing harmful characters.
*
* @param string $value The string to sanitize.
* @return string The sanitized string.
*/
public static function sanitizeString(string $value): string
{
try {
$sanitized = filter_var($value, FILTER_SANITIZE_STRING);
Logger::info("Sanitized string: Original: $value | Sanitized: $sanitized");
return $sanitized;
} catch (\Throwable $e) {
Logger::error("Failed to sanitize string: $value");
ErrorHandler::exception($e);
return '';
}
}
/**
* Sanitizes an email address.
*
* @param string $value The email address to sanitize.
* @return string The sanitized email address.
*/
public static function sanitizeEmail(string $value): string
{
try {
$sanitized = filter_var($value, FILTER_SANITIZE_EMAIL);
Logger::info("Sanitized email: Original: $value | Sanitized: $sanitized");
return $sanitized;
} catch (\Throwable $e) {
Logger::error("Failed to sanitize email: $value");
ErrorHandler::exception($e);
return '';
}
}
/**
* Sanitizes a URL.
*
* @param string $value The URL to sanitize.
* @return string The sanitized URL.
*/
public static function sanitizeURL(string $value): string
{
try {
$sanitized = filter_var($value, FILTER_SANITIZE_URL);
Logger::info("Sanitized URL: Original: $value | Sanitized: $sanitized");
return $sanitized;
} catch (\Throwable $e) {
Logger::error("Failed to sanitize URL: $value");
ErrorHandler::exception($e);
return '';
}
}
/**
* Sanitizes an array of strings.
*
* @param array $values The array of strings to sanitize.
* @return array The sanitized array.
*/
public static function sanitizeArray(array $values): array
{
try {
$sanitizedArray = filter_var_array($values, FILTER_SANITIZE_STRING);
Logger::info("Sanitized array: Original: " . json_encode($values) . " | Sanitized: " . json_encode($sanitizedArray));
return $sanitizedArray;
} catch (\Throwable $e) {
Logger::error("Failed to sanitize array: " . json_encode($values));
ErrorHandler::exception($e);
return [];
}
}
}