Sanitization
The Ecommerce\Core\Sanitizer class provides methods to sanitize input data, ensuring it is safe for processing and storage. It supports recursion for array sanitization and offers various built-in rules.
Using the Sanitizer
Sanitize individual values or entire datasets.
Sanitize Data
Create a sanitizer instance and process data.
Description:
The make() method initializes the sanitizer with data and rules. It immediately processes the data according to the rules provided.
Method Signature:
public static function make(array $data = [], array $rules = []): Sanitizer
Parameters:
$data- The input data array.$rules- An associative array of sanitization rules (e.g.,['email' => 'email']).
Examples:
use Ecommerce\Core\Sanitizer;
$input = [
'email' => ' test@Example.com ',
'bio' => '<b>Hello</b>'
];
$sanitizer = Sanitizer::make($input, [
'email' => Sanitizer::EMAIL,
'bio' => Sanitizer::TEXT
]);
$cleanData = $sanitizer->get_sanitized_data();
// Result: ['email' => 'test@example.com', 'bio' => 'Hello']
Get Sanitized Data
Retrieve the cleaned data.
Description:
The get_sanitized_data() method returns the array of data after rules have been applied.
Method Signature:
public function get_sanitized_data(): array
Examples:
$data = $sanitizer->get_sanitized_data();
Apply Single Rule
Sanitize a single value statically.
Description:
The apply_rule() method allows you to sanitize a single value without creating a full instance.
Method Signature:
public static function apply_rule(mixed $value, string|callable $type, array $data = []): mixed
Parameters:
$value- The value to sanitize.$type- The rule constant or callable.
Examples:
$email = Sanitizer::apply_rule(' Test@Test.com ', Sanitizer::EMAIL);
$int = Sanitizer::apply_rule('123abc', Sanitizer::INT);
Available Rules
The Sanitizer class provides constants for common sanitization types.
| Constant | Description |
|---|---|
Sanitizer::TEXT | plain text, uses sanitize_text_field |
Sanitizer::EMAIL | email address, uses sanitize_email |
Sanitizer::INT | cast to integer |
Sanitizer::FLOAT | cast to float |
Sanitizer::BOOL | cast to boolean |
Sanitizer::URL | valid URL, uses sanitize_url |
Sanitizer::KEY | key format (lowercase, dashes), uses sanitize_key |
Sanitizer::TITLE | title format, uses sanitize_title |
Sanitizer::TEXTAREA | preserves newlines, uses sanitize_textarea_field |
Sanitizer::ARRAY | ensures value is an array |
Sanitizer::MONEY | converts to minor units for storage |
Sanitizer::DATE | valid date or null |
Examples:
$rules = [
'price' => Sanitizer::FLOAT,
'is_active' => Sanitizer::BOOL,
'tags' => Sanitizer::ARRAY
];