skrepr/id-type
Skrepr ID Type adds type-safe ID value objects to Laravel Eloquent models, with a custom cast for UUIDs, ULIDs, and other identifiers so you can validate, serialize, and use IDs consistently across your application. Lightweight and easy to configure.
int/string IDs with dedicated ID value objects (UserId, OrderId, etc.), which reduces a whole class of bugs where IDs get swapped between entities or passed to the wrong repository method.^3 via better EntityValueResolver support. If the roadmap includes an ORM 3 migration, this package is now a lower-risk dependency on that path — worth noting in the upgrade spike.Adopt when:
EntityValueResolver (route-parameter-to-entity conversion). Note 1.3.2 is the release that makes the ORM 3 combination work well — pin at ^1.3.2 if ORM 3 is in play.Look elsewhere or defer when:
EntityValueResolver, Doctrine custom types) is Symfony/Doctrine-centric; in Laravel you'd use it mainly as a plain value-object library with Eloquent casts and route binding, which is workable but gives you less of the packaged value.Release-specific read on 1.3.2: patch-level, additive compatibility fix, no breaking changes, no deprecations. Low urgency; fold into the next routine dependency bump. Its main signal is that the package is actively tracking Doctrine ORM 3, which is a positive maintenance indicator.
For executives (one paragraph): This is a small, low-risk open-source dependency that makes entity IDs type-safe in our PHP code. The practical benefit is fewer production bugs caused by mixing up IDs, plus IDs that are validated consistently at the edges of the system. The 1.3.2 release is a maintenance patch that improves compatibility with Doctrine ORM 3 — it unblocks or de-risks our eventual ORM upgrade and confirms the package is actively maintained. Cost is a small amount of integration work and a modest amount of developer ceremony; there is no user-facing change and no licensing or vendor-lock-in exposure.
For engineering:
^1.3.2 if you are on Doctrine ORM 3 — earlier versions have weaker EntityValueResolver support in that combination.fromString/__toString, JSON serialization) so the codebase does not end up with three different patterns.How can I help you explore Laravel packages today?