Skip to content

Toxin4ick/Sanitizer

Repository files navigation

Sanitizer

По умолчанию есть 7 настройных типов данных, которые сервер может обработать:

  • array - одномерный массив
  • float - число с плавающей запятой
  • int - целочисленный типа
  • phone - номер телефона российской федерации
  • string - строковый тип
  • structure - ассоциативный массив

Пример валидации и нормализации приходящих данных:

        $filters = [
            'foo' => 'int',
            'bar' => 'float',
            'dol' => 'phone',
            'sd' => 'string',
            'dsds' => 'string',
            'ar'=> 'Array',
            'st'=> 'Structure'
        ];

Обозначем у каких ключей какие типы данных

        $json = json_encode([
            'foo' => '65',
            'bar' => '23423.444',
            'dol' => '+7 (950) 288-56-23',
            'sd' => 'sdaf',
            'dsds'=> 'asd',
            'ar' =>
                ["123", "fdsf"],
            'st' => [
                'jhg'=>'dsa' ]
        ]);

Приходящие данные в виде json формата

$result = $sanitizer->sanitize($filters, $json);

Обрабатываем эти два массива через метод sanitize, который проверяет чтобы совпадали названия ключей, тип поступаемых данных был таким, каким его указали для этого ключа.

class FinalTest
{
    public function testing()
    {
        $sanitizer = new Sanitizer();
        $filters = [
            'foo' => 'int',
            'bar' => 'float',
            'dol' => 'phone',
            'sd' => 'string',
            'dsds' => 'string',
            'ar'=> 'Array',
            'st'=> 'Structure'
        ];
        $json = json_encode([
            'foo' => '65',
            'bar' => '23423.444',
            'dol' => '+7 (950) 288-56-23',
            'sd' => 'sdaf',
            'dsds'=> 'asd',
            'ar' =>
                ["123", "fdsf"],
            'st' => [
                'jhg'=>'dsa'
    ]
        ]);

        $result = $sanitizer->sanitize($filters, $json);
    var_dump($result);
    }
}
$ds=new FinalTest();
$ds->testing();

Полный код.

Что выведет, если тип поступивших данных был правильным.

Давайте попробуем передать ключ, которого нет в заданных.

        $json = json_encode([
            'foo' => '65',
            'bar' => '23423.444',
            'dol' => '+7 (950) 288-56-23',
            'sd' => 'sdaf',
            'dsds'=> 'asd',
            'ar' =>
                ["123", "fdsf"],
            'st' => [
                'jhg'=>'dsa'
    ],
            'fog'=>'34'
        ]);

Попробуем передать не верный тип данных.

       $json = json_encode([
            'foo' => '65.43',
            'bar' => '23423fd44',
            'dol' => '+9 56-23',
            'sd' => 'sdaf',
            'dsds'=> 543,
            'ar' => 'array',
            'st' => [
                'jhg'=>'dsa'
    ]
        ]);

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages