Мне интересно, где находится правильное место для пользовательского валидатора, который я хочу использовать более чем в одном месте?
Например, у меня есть min_image_size
валидатор:
Validator::extend('min_image_size', function($attribute, $value, $parameters) {
$imageSize = getimagesize($value->getPathname());
return ($imageSize[0] >= $parameters[0] && $imageSize[1] >= $parameters[1]);
});
Где я должен разместить его по правильному Laravel-way?
Определенно расширить валидатор в Поставщик услуг. Вы можете использовать существующие app/Providers/AppServiceProvider.php
или создайте другой только для проверки.
Затем в boot()
метод, добавьте это:
public function boot(){
$this->app['validator']->extend('min_image_size', function($attribute, $value, $parameters) {
$imageSize = getimagesize($value->getPathname());
return ($imageSize[0] >= $parameters[0] && $imageSize[1] >= $parameters[1]);
});
}
Также может быть целесообразно поместить действительные правила проверки в отдельный класс и использовать этот синтаксис:
$this->app['validator']->extend('min_image_size', 'MyCustomValidator@validateMinImageSize');
Я думаю, что я создам класс для пользовательской проверки, где я могу написать свои собственные правила и поместить его в папку библиотеки или может быть промежуточным программным обеспечением.