milwad/laravel-validate
Enhanced Laravel validation with a large set of custom rule classes and helper methods for faster, cleaner advanced validation. Includes localization support and works with Laravel 9+ (PHP 8+), with community-contributed language packs.
Strengths:
ValidPhoneNumber, ValidCreditCard, ValidIban), reducing boilerplate for domain-specific validation logic.Validator facade, rule objects), ensuring seamless adoption without disrupting existing workflows.'ValidPhone') and object-based rules (new ValidPhoneNumber()), offering flexibility in validation syntax.Weaknesses:
ValidPhoneNumber AND ValidCountryCode), requiring manual implementation.Pros:
Validator facade or Form Requests.required|email|ValidCreditCard).Cons:
spatie/laravel-validation) if both are used.new ValidPhoneNumber()) could impact validation speed in high-throughput APIs.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Rule Bloat | Medium | Audit rules to remove unused ones; consider composer scripts to auto-remove unused classes. |
| Version Lock-in | High | Pin to a specific minor version (e.g., ^2.0) to avoid breaking changes. |
| Localization Gaps | Low | Contribute missing language files via PRs or extend the package’s lang directory. |
| Testing Overhead | Medium | Add validation tests to CI pipeline to catch regressions. |
| Custom Rule Conflicts | Medium | Use namespaced rule classes (e.g., App\Rules\CustomValidPhone) to avoid collisions. |
ValidIranPostalCode), or are native Laravel validators sufficient?new ValidCreditCard()) over string-based rules.required|email).spatie/laravel-validation).composer require milwad/laravel-validate
ValidCreditCard) with the package’s equivalent.php artisan vendor:publish --tag="laravel-validate-config"
php artisan vendor:publish --tag="validate-lang-en"
// Before
'credit_card' => 'required|string|size:16',
// After
'credit_card' => ['required', new \Milwad\LaravelValidate\Rules\ValidCreditCard()],
^2.0 for L13).composer why-not milwad/laravel-validate to check for conflicts.Valid*).ValidIban and ValidCreditCard for a fintech app.ValidPhoneNumber AND ValidCountryCode).using_container config and autoloading.Validator::extend() to inspect custom rules.new ValidPhoneNumber()) add ~1–5ms per validation (benchmark in staging).ValidEmail) if validation is a bottleneck.'ValidEmail') if using_container is enabled (faster resolution).How can I help you explore Laravel packages today?