roukmoute/sqids-bundle
A Symfony bundle that integrates Sqids, letting you generate short, unique, URL-friendly IDs from numbers and decode them back. It wires Sqids into Symfony's service container for easy dependency injection and reuse across your application.
sqids/sqids-php) is small and permissively licensed; this bundle is DI/configuration glue for Symfony. The honest decision is: buy the glue if you're already on Symfony and want a configured service with per-entity alphabet/min-length; build (≈20–30 lines binding the library in a service provider) if you're on Laravel, where this bundle is not directly usable.loadInternal). It tells you the package tracks Symfony majors; it does not indicate an active feature roadmap. Plan for this dependency as small and replaceable, not as a platform component.Adopt when:
^0.10 dependency and accepting pre-1.0 API churn.Look elsewhere when:
sqids/sqids-php directly behind a thin service provider or value-object wrapper; you gain nothing from the bundle and lose a dependency.Release-specific note for v0.10.0: the change adds a return type to loadInternal. This is backward-compatible for consumers (no config or container changes), but is technically breaking if you subclass or extend the bundle's DI extension. It is the gate that lets Symfony 8 upgrades proceed; without it you're pinned to Symfony 7.x.
To executives: This is a tiny, free, MIT-licensed glue package that makes customer-facing IDs shorter and less revealing than raw database counters. Cost is effectively zero and it's easily replaced, so risk is low. The one thing to be clear about: it hides patterns, not data — it is not a security or access-control measure, and it should never be the thing standing between a user and someone else's record. The new release is a one-line Symfony 8 compatibility fix, not a capability change.
To engineering: v0.10.0 adds a return type to loadInternal for Symfony 8 compatibility; upstream Sqids behavior is unchanged, no config migration, no container changes. Only relevant if you extend the bundle's extension class — then it's a signature change. The broader caveat: this is a 0.x package with one maintainer and a very small surface area. Treat it as an implementation detail behind your own interface (e.g. an IdEncoder contract) so a future swap to ULIDs or a bespoke encoder stays a one-file change rather than a refactor. If you're a Laravel shop, skip the bundle and bind sqids/sqids-php yourself.
How can I help you explore Laravel packages today?