rikudou/doctrine-plural-naming
A Doctrine DBAL naming strategy that automatically pluralizes table names using Laravel's pluralizer, keeping database schemas consistent without manual table naming. Drop-in integration for Laravel projects using Doctrine.
classToTableName() override). Given zero stars, zero dependents, and no downstream validation, the defensible PM call is to copy the ~40 lines internally and own them, rather than take a dependency whose only value is a few hundred lines of inflection glue. Borrow the pattern, not the package.#[ORM\Table(name: '...')] annotations; and cross-ORM consistency where Eloquent already pluralizes and Doctrine does not.Consider it when:
laravel-doctrine/orm — not just Eloquent.Look elsewhere — or vendor the logic — when:
classToTableName() override plus inflection rules, and its edge cases (compound nouns, uncountables, double-pluralization on join tables) are exactly where small utilities fail late — at query time, in rarely-hit code paths.For executives: This is a small MIT-licensed utility that can remove schema boilerplate from Doctrine-based PHP services by enforcing plural table names automatically. It is not a strategic platform bet, it carries little product risk if adopted narrowly, and it has no meaningful adoption signal — so treat it as a tactical standardization aid at best. The recommended position is to apply the pattern internally (roughly 40 lines, fully owned) rather than take a dependency. Approve only as engineering-led hygiene for greenfield Doctrine services, with a clear exit path and no roadmap allocation.
For engineering: The package provides a Doctrine naming strategy that pluralizes entity table names (UserGroup → user_groups) and drops @Table boilerplate. It targets Doctrine ORM only — it is irrelevant to Eloquent-first Laravel code — and it does not solve existing-schema migration; renaming tables means renaming FKs, indexes, and raw SQL. Verify the declared DBAL/ORM constraints against our pins first, since the naming-strategy API has moved across versions. Then read the source, prototype against a non-trivial schema (irregular plurals, join tables, reserved words), and diff the generated DDL against expectations. Because the dependency has zero stars and zero dependents, the preferred path is to vendor the strategy class into our codebase, add tests covering our actual entity vocabulary plus one irregular and one compound noun, and register it as an org convention with a lint check on migrations. Taking the package adds abandonment and version-compatibility risk for a surface area we can carry ourselves with no external failure mode.
How can I help you explore Laravel packages today?