ideup/extra-validator-bundle
Extra Validator Bundle adds ready-made Symfony validation constraints and rules for common cases, helping you validate user input with less custom code. A small, focused package for projects that need extra validators beyond Symfony's built-in set.
ValidationRule objects rather than adopting the package.Illuminate\Validation\Rule, no config publish hook. Symfony 2 has been end-of-life since 2018. That mismatch is itself a product decision: we would be adopting packaging built for a framework generation we don't run, to get four regex/checksum functions.Consider it when:
Look elsewhere when:
ValidationRule object or a maintained rules package). The Symfony 2 bundle plumbing is dead weight, and the constraint classes are trivially portable.php: >=5.3, symfony/symfony: ~2.x) against any Laravel 10+ / PHP 8.1+ app, and constraint APIs (getDefaultOption/setDefaultOption) removed in Symfony 3.0.ideup/extra-validator-bundle vs javiacei/ExtraValidatorBundle) that creates provenance ambiguity. Treat it as unmaintained code and plan to own it — fork it or reimplement.To executives (one paragraph): For our Spain-facing flows we need to validate Spanish postcodes and fiscal IDs (DNI/NIE/CIF) at the point of capture. An existing open-source PHP package does this, but it is a small, low-adoption Symfony 2 bundle — 9 stars, zero dependents, built for an end-of-life framework — so adopting it would mean taking on an unmaintained dependency with no security or support path. The business capability is worth having; the dependency is not. My recommendation is to take the well-documented checksum rules and implement them as a small, owned validation rule in our Laravel codebase: roughly 1–2 engineering days plus tests, no third-party maintenance or security exposure, no licensing review, and full test coverage on our side. Net cost is comparable to adopting the package and materially lower risk.
To engineering: Treat ideup/extra-validator-bundle as a specification and reference, not a dependency. There is no Laravel integration surface — the correct framing is harvest the algorithm, discard the packaging. Extract the DNI/NIE/CIF and postcode checksum logic into first-party Laravel ValidationRule classes (SpanishDni, SpanishNie, SpanishCif, SpanishPostcode) with Pest/PHPUnit data providers over a known-good/known-bad vector table — valid and invalid DNI, NIE with each of X/Y/Z, CIF across the control-letter and control-digit branches, boundary postcodes (01000/52999), plus negatives for whitespace, lowercase, and 9-digit inputs. Flag two limits in the ticket: this validates format only, not tax-authority existence; and postal-code validation should be paired with country selection so we don't misapply Spanish rules to non-Spanish addresses. Sequence the port before any surface depends on Spanish tax identifiers — if a release is imminent, ship a permissive format-only regex first and tighten to checksum validation the following sprint. Watch for silent false negatives (legitimate NIEs/CIFs rejected by logic that may predate post-2008 identifier reforms) — mitigate with a canary cohort and a manual-override path, and record validation outcomes since DNI/NIE are personal data under GDPR/LOPDGDD. Budget ~3 developer-days for spike, port, and tests, plus a review pass by someone with Spanish-market domain knowledge. If we do vendor any code, pin it, note origin and license in the repo, and add it to third-party review — we own it from day one.
The ask: Approve the small build (est. 1–2 engineering days plus tests, ~3 days end-to-end) inside the Spain launch epic, assign a named owner for the extracted rules, and skip adding the Symfony 2 bundle as a production dependency. Score 0.315 with 0 dependents and an EOL framework baseline is a clear no-go for adoption; close the evaluation once the port lands.
How can I help you explore Laravel packages today?