frayzz/sanitizer

Library for validating incoming data. Test task from arbuz.kz.

dev-main 2023-11-21 06:00 UTC

This package is not auto-updated.

Last update: 2025-09-06 11:56:48 UTC


README

Library for validating incoming data.

Для установки выполняем набор комманд

composer require frayzz/sanitizer:dev-main

Подключаем библиотеку

require_once "vendor/autoload.php";
use Sanitizer\Sanitizer\Sanitizer;

Пример использования Код:

$jsonGetData = '{"foo": "1223", "bar": "asd", "baz": "+7 (707) 288-56-21", "qux": "1.7", "nested_array": [1, 5], "structure": { "key1": "55", "key2": "test" } }';
$specification = [
    'foo' => [
        'type' => 'integer',
        'element' => 'integer'
    ],
    'bar' => [
        'type' => 'string',
        'element' => 'string'
    ],
    'baz' => [
        'type' => 'phoneNumber',
        'element' => 'phoneNumber'
    ],
    'qux' => [
        'type' => 'float',
        'element' => 'float'
    ],
    'nested_array' => [
        'type' => 'array',
        'element' => 'integer'
    ],
    'structure' => [
        'type' => 'structure',
        'element' => [
            'key1' => 'integer',
            'key2' => 'string',
        ]
    ],
];

$jsonEncodeData = json_decode($jsonGetData, true);
$sanitize = new Sanitizer($specification);
$dataValue = $sanitize->validate($jsonEncodeData);

echo '<pre>';
print_r($dataValue);
echo '</pre>';

Ответ:

Array
(
    [errors] => Array
        (
            [key1] => Array
                (
                    [enterVal] => Array
                        (
                            [key1] => 55
                            [key2] => test
                        )

                    [errorType] => Массив не является одним фиксированным типом
                    [type] => string
                )

        )

)