composer require proklung/controller-sanitizer-validator
Очищаются только GET и POST параметры запроса. Валидируются все типы запросов.
С помощью https://github.com/Waavi/Sanitizer. В контроллере может быть реализован метод getSanitizingRules
,
описывающий правила санации. Или определено свойство типа массив sanitizingRules
.
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
.
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/EmailValidatorCustomEmailValidatorNullable
- Email, может быть пустымCyrillicAlphaValidator
- в параметре только символы и пробелыCyrillicAlphaValidatorNullable
- в параметре только кириллические символы, может быть пустымLaravelPhoneValidator
- телефонный номер, при помощи https://github.com/giggsey/libphonenumber-for-phpLaravelPhoneValidatorNullable
- телефонный номер, может быть пустымJsonValidator
- проверка на json