Skip to main content

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.

ConstantDescription
Sanitizer::TEXTplain text, uses sanitize_text_field
Sanitizer::EMAILemail address, uses sanitize_email
Sanitizer::INTcast to integer
Sanitizer::FLOATcast to float
Sanitizer::BOOLcast to boolean
Sanitizer::URLvalid URL, uses sanitize_url
Sanitizer::KEYkey format (lowercase, dashes), uses sanitize_key
Sanitizer::TITLEtitle format, uses sanitize_title
Sanitizer::TEXTAREApreserves newlines, uses sanitize_textarea_field
Sanitizer::ARRAYensures value is an array
Sanitizer::MONEYconverts to minor units for storage
Sanitizer::DATEvalid date or null

Examples:

$rules = [
'price' => Sanitizer::FLOAT,
'is_active' => Sanitizer::BOOL,
'tags' => Sanitizer::ARRAY
];