davidianbonner/enumerated
Enumerated brings first-class enum support to Laravel. Define backed enums and use them in Eloquent casts, validation rules, and form requests, with helpers for labels, options, and comparisons. Keeps domain values type-safe and readable.
Architecture fit. davidianbonner/enumerated is a Laravel enum/value-object package. The integration surface is small and framework-native: it plugs into Eloquent casts and application domain models rather than imposing its own persistence, container bindings, or middleware. That makes it a low-coupling dependency — attractive for teams that want typed enumerations without adopting a broader architectural pattern. Fit is good for domain-model-heavy Laravel codebases; it is largely irrelevant to API-only or thin-service layers.
Integration feasibility. Low-to-moderate effort. The package is Composer-installable and, based on the version line, has been maintained across multiple Laravel majors. The real cost is not installation but convention: adopting enum types touches model definitions, migrations, factories, seeders, validation rules, and serialization. Expect a code-touching migration rather than a drop-in.
Technical risk. Three risks dominate:
Key questions.
Stack fit. Assumes a conventionally structured Laravel application (Eloquent models, service provider auto-discovery, Composer). No fit issues for standard monoliths. Verify fit before committing if the application relies on native PHP enums exclusively — the package may overlap with built-in language features and add a dependency for capability you already have.
Migration path. Sequence: (1) diff the v8.0.0…v8.0.1 compare link directly in GitHub to establish what the patch does; (2) review the v8.0.0 release notes for the breaking-change list; (3) pin to an exact version in composer.json rather than a caret range, given the thin changelog; (4) pilot on one non-critical model; (5) expand.
Compatibility. Semver convention suggests v8.0.1 introduces no breaking changes relative to v8.0.0, so a patch-level bump is safe in principle. This should be confirmed against the actual diff — an empty changelog is not the same as an empty commit range. Do not treat the absence of notes as evidence of a trivial change.
Sequencing. Treat v8 adoption as a standalone, reversible work item with its own PR. Do not bundle it with framework upgrades or enum refactors, otherwise the empty changelog will make it impossible to attribute regressions during rollback triage.
Maintenance. Low code footprint, single maintainer, inconsistent release documentation. Budget for periodic manual review of the repository rather than relying on release feeds — the changelog is not a reliable signal channel. Add it to a quarterly dependency review.
Support. Community-only. No commercial backing, no SLA. Acceptable for internal tooling; questionable for anything with regulatory or revenue exposure. If the enum layer becomes load-bearing for persisted data, plan an internal abstraction seam now so the package can be replaced without a schema migration.
Scaling. The package is a runtime convenience, not a performance concern — negligible scaling impact. The scaling risk is organizational: every engineer who touches enum-carrying models must understand the package's conventions, and that knowledge is undocumented here.
Failure modes.
Ramp-up. Hours to install, days to adopt conventions across a codebase. Because release notes convey nothing, onboarding cannot lean on upstream documentation for version-specific behavior — expect to read source or diffs to answer version questions. Factor that into the estimate.
Assessment status. Provisional. Evidence base is a single patch release with no changelog content, against a prior state of no assessment. Confidence is low on version support, breaking-change scope, and patch contents. Re-assess once the v8.0.0 and v8.0.1 diffs and compatibility matrix are reviewed.
How can I help you explore Laravel packages today?