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.
Pros:
ValidPhoneNumber, ValidCreditCard, ValidJwt), reducing boilerplate for domain-specific validation logic.using_container config allows rules to be resolved dynamically (e.g., ValidPhone as a class instance), enabling dependency injection for complex rules.Validator facade), ensuring seamless integration with Form Requests, API resources, and manual validation.required|ValidPhoneNumber or new ValidPhoneNumber()), catering to teams with varying preferences.Cons:
ValidIranPostalCode) are region-specific, limiting reuse in non-Iranian applications.Rule objects, this package lacks fluent chaining (e.g., Rule::required()->ValidPhoneNumber()), which could reduce readability for complex validations.using_container: true) may introduce minor performance overhead during validation.rules() method calls with package rules (e.g., ValidCreditCard).validate() calls or API resource sanitization.Validator::make() for ad-hoc validation.ValidJwt, ValidIban) may require external libraries (e.g., firebase/php-jwt, league/iban). Ensure these are pre-installed or document them as dependencies.ValidCreditCard). Plan for custom rule testing.ValidPhoneNumber for non-Iranian formats)? If so, the package’s OOP design (e.g., extends Rule) supports this.using_container: false vs. true.credit_card) conflict with this package? Audit for redundancy.ValidCreditCard, ValidIban), telecom (ValidImei), or e-commerce (ValidCartNumberIran).is_valid_phone with ValidPhoneNumber).ValidJwt may need firebase/php-jwt).ValidCreditCard instead of credit_card|custom:is_valid).Validator::extend() calls with package rules where possible.Validator::extend() to alias package rules for backward compatibility (e.g., Validator::extend('valid_phone', function ($attr, $value) { return (new ValidPhoneNumber())->passes($value); });).Validator facade.laravel-validator or spatie/laravel-validation-rules may define overlapping rules. Audit for naming collisions (e.g., ValidEmail vs. email).\Milwad\LaravelValidate\Rules\ValidEmail) or aliases.ValidJwt) may require openssl or sodium. Document these as server requirements.milwad/laravel-validate to composer.json.php artisan vendor:publish --tag="laravel-validate-config") to set using_container.ValidCreditCard::passes('4111111111111111')).ValidationException).using_container setting based on performance metrics.firebase/php-jwt) may need manual updates.ValidIranPostalCode) becomes obsolete, it must be replaced or patched."The phone number is invalid.").ValidationException logging to track rule failures.Milwad\LaravelValidate\Rules\Rule.new ValidPhoneNumber() vs. string syntax).ValidJwt without openssl).using_container: false for high-throughput APIs (e.g., 10K+ validations/sec).ValidDuplicate (checking DB uniqueness) may add queries. Consider pre-loading data or optimizing queries.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Package Abandonment | Broken validations | Fork the repo or |
How can I help you explore Laravel packages today?