Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/proklung/controller.sanitizer.validator
Валидация и санация запроса посредством трэйтов для Symfony-ориентированных приложений
https://github.com/proklung/controller.sanitizer.validator
php7 sanatize symfony validation
Last synced: 11 days ago
JSON representation
Валидация и санация запроса посредством трэйтов для Symfony-ориентированных приложений
- Host: GitHub
- URL: https://github.com/proklung/controller.sanitizer.validator
- Owner: ProklUng
- Created: 2021-04-27T05:29:48.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-08-08T16:53:06.000Z (over 3 years ago)
- Last Synced: 2024-05-18T14:42:41.511Z (6 months ago)
- Topics: php7, sanatize, symfony, validation
- Language: PHP
- Homepage:
- Size: 26.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.MD
Awesome Lists containing this project
README
# Валидация и санация запроса посредством трэйтов для Symfony-ориентированных приложений
## Установка
`composer require proklung/controller-sanitizer-validator`
## Нюансы
Очищаются только GET и POST параметры запроса. Валидируются все типы запросов.
## Санитайзер
С помощью [https://github.com/Waavi/Sanitizer](). В контроллере может быть реализован метод `getSanitizingRules`,
описывающий правила санации. Или определено свойство типа массив `sanitizingRules`.```php
use Prokl\RequestValidatorSanitizer\Sanitizing\SanitizableTrait;class SimpleController extends AbstractController
{
use SanitizableTrait;
public function action(Request $request) {
// Санитизированный Request.
$requestSanitized = $this->sanitizeRequest(
$request,
$this->getSanitizingRules()
);}
/**
* Правила санации.
*
* @return array
*/
private function getSanitizingRules(): array
{
return [
'id' => 'trim|escape|strip_tags|cast:string',
'url' => 'trim|escape|strip_tags|cast:string',
'name' => 'trim|escape|strip_tags|cast:string',
'email' => 'trim|escape|strip_tags|cast:string',
'phone' => 'trim|escape|strip_tags|cast:string'
];
}
}
```## Валидатор
С помощью [https://github.com/illuminate/validation](). В контроллере может быть реализован метод `getRules`,
описывающий правила валидации в стадарте `Illuminate Validation`. Или определено свойство типа массив `rules`.```php
use Prokl\RequestValidatorSanitizer\Validation\Custom\CustomEmailValidatorNullable;
use Prokl\RequestValidatorSanitizer\Validation\Custom\LaravelPhoneValidator;class SimpleController extends AbstractController
{
use ValidateableTrait;public function action(Request $request) {
$this->validateRequest(
$request,
$this->getRules()
);
}
/**
* Правила валидации.
*
* @return string[]
*/
private function getRules() : array
{
return [
'name' => 'required|string',
'id' => 'string|nullable|min:3|max:60',
'url' => 'string|nullable|url',
'email' => ['nullable', new CustomEmailValidatorNullable],
'phone' => ['required', 'string', new LaravelPhoneValidator]
];
}
}
```## Кастомные валидаторы
- `CustomEmailValidator` - Email, при помощи [https://github.com/egulias/EmailValidator]()
- `CustomEmailValidatorNullable` - Email, может быть пустым
- `CyrillicAlphaValidator` - в параметре только символы и пробелы
- `CyrillicAlphaValidatorNullable` - в параметре только кириллические символы, может быть пустым
- `LaravelPhoneValidator` - телефонный номер, при помощи [https://github.com/giggsey/libphonenumber-for-php]()
- `LaravelPhoneValidatorNullable` - телефонный номер, может быть пустым
- `JsonValidator` - проверка на json