, (*1)
REST Normalizer
This class can validate and filter parameters based on JSON rules., (*2)
It can take a list of request parameters passed as an array or as a JSON string and validates it according to rules defined in an external files in the JSON format., (*3)
The class can traverse the parameter data and check if the entries match the types and validation rules defined in the rules file for the specific type of request., (*4)
Invalid values may be discard and logged to a given log file., (*5)
The class may also call callback functions before and after the normalization process., (*6)
More information., (*7)
Requirements
Installation
1) Install composer, (*8)
2) Follow in the project folder:, (*9)
composer require dmamontov/restnormalizer ~1.0.2
In config composer.json your project will be added to the library dmamontov/restnormalizer, who settled in the folder vendor/. In the absence of a config file or folder with vendors they will be created., (*10)
If before your project is not used composer, connect the startup file vendors. To do this, enter the code in the project:, (*11)
require 'path/to/vendor/autoload.php';
The data type "string"
- required - Checking the mandatory values, accepts parameters (true, false)
- default - Default
- max - The maximum allowable length of the string
- min - The minimum allowable length of the string
- pad - Supplemented with the symbol (default: " ")
"example": {
"type": "string",
"required": false,
"default": "example",
"max": 15,
"min": 4,
"pad": "+"
}
The data type "int"
- required - Checking the mandatory values, accepts parameters (true, false)
- default - Default
- max - The maximum allowable value
- min - The minimum allowable value
"example": {
"type": "int",
"required": true,
"default": 55,
"max": 203,
"min": 10
}
The data type "double"
- required - Checking the mandatory values, accepts parameters (true, false)
- default - Default
- max - The maximum allowable value
- min - The minimum allowable value
- decimals - The number of digits after the decimal point
"example": {
"type": "double",
"required": true,
"default": 5,
"max": 20.5,
"min": 1.1,
"decimals": 5
}
The data type "bool"
- required - Checking the mandatory values, accepts parameters (true, false)
- default - Default
"example": {
"type": "bool",
"required": true,
"default": true
}
The data type "datetime"
- required - Checking the mandatory values, accepts parameters (true, false)
- default - Default (default: "now")
- format - Date and time format
"example": {
"type": "datetime",
"required": true,
"default": "now",
"format": "Y-m-d H:i:s"
}
The data type "enum"
- required - Checking the mandatory values, accepts parameters (true, false)
- default - Default
- values - An array of enumerated values
"example": {
"type": "enum",
"required": true,
"default": 999,
"values": [1, 5, 999]
}
The data type "skip"
"example": {
"type": "skip"
}
Example of work
require_once 'RestNormalizer.php';
$n = new RestNormalizer();
$n->setValidation('you-valid.json')
->setLogFile('valid.log');
$data = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$data = $n->normalize($data)