pugx/shortid-doctrine-bundle
Symfony bundle that integrates PugX ShortId with Doctrine ORM, giving entities short, unique, human-friendly identifiers generated automatically on persist. Ideal for clean URLs and readable public IDs.
Package identity check — read this first. The release notes are for PUGX/shortid-doctrine-bundle, which is a Symfony bundle providing a Doctrine ORM ID generator backed by the pugx/shortid-php library. It is not a Laravel package. It has no service provider, no facade, no config file published to config/, and no Eloquent integration. The assessment below treats it as a candidate PHP dependency inside a Laravel codebase, which is the only defensible framing.
#[ORM\CustomIdGenerator] class wired through Symfony's DI container. In a standard Laravel app, neither half of that is present. The only realistic fit is an application that already runs Doctrine via laravel-doctrine/orm — where you would use the bundle's generator class, but still not the bundle's Symfony wiring. Fit improves if the real requirement is short, URL-safe, non-sequential public IDs; it does not if the requirement is simply "nicer IDs" and an Eloquent-friendly alternative exists.pugx/shortid-php directly and implement a Laravel-native layer (an Eloquent trait or a Doctrine\ORM\Id\AbstractIdGenerator subclass registered through the laravel-doctrine config). That is roughly a one-to-two-day spike, not a drop-in. If the goal is only to expose opaque IDs in a Laravel app, sqids/sqids or hashids/hashids reach the same outcome with less impedance.shortid-php library is in play.pugx/shortid-php stops receiving releases? Short IDs are cheap to reimplement, so the lock-in is low — but only if we don't leak the generator into persisted foreign keys.sqids/sqids first and treat this package as a comparison point. If the app is Doctrine-backed under laravel-doctrine/orm, adopt the generator class and skip the bundle's DI extension.composer.json rather than inferring from the Symfony 8 fix. Confirm the Symfony component constraints resolve cleanly against the Laravel version in use; a Symfony 8-oriented constraint can conflict with Laravel's pinned Symfony 7 components and produce dependency-resolution friction. Check Doctrine ORM major version compatibility if the Doctrine path is taken.How can I help you explore Laravel packages today?