Data filtering and validation¶
Data filtering¶
Class \Comodojo\Foundation\Validation\DataFilter
provides some useful methods to filter data extending (or shortcutting) php funcs.
Included methods are:
filterInteger
: conditional int filter from ($min, $max, $default)filterPort
: TCP/UDP port filteringfilterBoolean
: boolean filter
Usage example:
<?php
$https = 443;
$invalid_port = 10000000;
$default = 8080;
var_dump(\Comodojo\Foundation\Validation\DataFilter::filterPort($https, $default));
var_dump(\Comodojo\Foundation\Validation\DataFilter::filterPort($invalid_port, $default));
It returns:
int(443)
int(8080)
Data validation¶
Class \Comodojo\Foundation\Validation\DataValidation
provides methods to validate data types, optionally applying a custom filter on value itself.
Validation can be invoked via validate
methods, that accepts input data, data type and filter, or using specific validation methods:
validateString
validateBoolean
validateInteger
validateNumeric
validateFloat
validateJson
validateSerialized
validateArray
validateStruct
validateDatetimeIso8601
validateBase64
validateNull
validateTimestamp
Usage example:
<?php
$http = 80;
$https = 443;
$filter = function(int $data) {
// check if port 80
return $data === 80;
};
var_dump(\Comodojo\Foundation\Validation\DataValidation::validateInteger($http, $filter));
var_dump(\Comodojo\Foundation\Validation\DataValidation::validateInteger($https, $filter));
It returns:
bool(true)
bool(false)