RaditzFarhan\SahRule\Rules, enabling selective adoption without monolithic integration. Ideal for teams using Laravel’s validation heavily (e.g., APIs, forms, or data pipelines).Validator facade and rule system, reducing friction for teams already familiar with FormRequest, Validator::make(), or validate() methods.new Base64Image), requiring minimal boilerplate. No database migrations, service providers, or config changes are needed for basic usage.passes(), message()), ensuring seamless integration with existing validation logic.composer.json (risk of breaking changes across Laravel 9/10+).mimes, dimensions) sufficient?laravel-validation-rules, spatie/laravel-validation-rules) provide broader coverage with lower risk?multipart/form-data or JSON).mimes rule.// Before: Manual check
if (!preg_match('/^data:image\/png;base64,.../', $request->image)) {
throw new \Exception('Invalid image');
}
// After: SahRule
$request->validate(['image' => [new Base64Image('png')]]);
composer.json to avoid surprises:
"require": {
"raditzfarhan/sahrule": "^1.0"
}
laravel/framework version constraints to align:
"require": {
"laravel/framework": "^9.0",
"raditzfarhan/sahrule": "^1.0"
}
extends Base64Image for additional logic).composer.json and update dependencies.isBase64Image function) with Base64Image.use RaditzFarhan\SahRule\Rules\Base64Image;
class StorePostRequest extends FormRequest {
public function rules() {
return [
'thumbnail' => ['required', new Base64Image('jpg', 'png')],
];
}
}
Base64Image).$errors in Laravel).Base64Image may block during validation if processing large files. Test with:
max rule to prevent abuse:
'image' => ['required', new Base64Image, 'max:2048'] // 2MB limit
How can I help you explore Laravel packages today?