evercodelab/dependent-select-bundle
Symfony bundle for dependent select fields: dynamically load and update dropdown options based on another field’s selection, simplifying cascading forms with AJAX-backed choices.
EvercodeLab/DependentSelectBundle) and is not installable in Laravel. It has zero dependents and no meaningful stars — treat it as a reference implementation of a pattern, not a candidate dependency. The real product decision is "what is our house pattern for cascading selects in our stack?"Consider the pattern (not the dependency) when:
Look elsewhere — and almost certainly write it yourself — when:
wire:model.live cascades, Inertia + a scoped query, or Filament's ->live() / ->options() reactive fields. Any of these is a few dozen lines.EntityType with a query builder cover this natively; the bundle's era and API surface likely predate them.Adoption criteria if you insist on evaluating it: active commits in the last 12 months, a supported Symfony/PHP version matrix in CI, tests, a documented client-side contract (debouncing, empty-state, error handling), and a security review of the endpoint (authorization on the child-options query — a common and serious bug class in these implementations).
To executives: A small third-party bundle surfaced for cascading dropdowns. It doesn't fit our stack, and it's effectively unmaintained — adopting it would trade a two-day build for an open-ended maintenance and upgrade risk. Recommendation: don't adopt; build the pattern in-house, roughly 1–2 engineering days, and reuse it across every form that needs chained fields.
To engineering: This is a Symfony bundle, not a Laravel package, so it's out of scope as a dependency. Its only value is as a design reference: a form type plus an endpoint that returns filtered options for a given parent value. Our house implementation should use the framework-native reactive layer (Livewire/Alpine/Filament or Symfony UX), and must include the things a bundle like this typically omits: authorization on the child-options query (never trust the parent ID), debouncing, request cancellation for out-of-order responses, accessible loading and empty states, and caching of static hierarchies.
Net recommendation: Reject as a dependency; harvest as a pattern. The cost of writing this ourselves is low and bounded; the cost of owning an abandoned bundle is neither.
How can I help you explore Laravel packages today?