Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tavvet Doctrine Prefix Bundle Laravel Package

tavvet/tavvet-doctrine-prefix-bundle

Symfony bundle that adds configurable table prefixes to Doctrine ORM entities, helping share databases or isolate tables without editing mappings. Integrates with Doctrine metadata and Symfony configuration for consistent prefixed table names.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Multi-tenancy architecture: choosing between a shared database with per-tenant table prefixes, separate schemas, or database-per-tenant. This package only addresses the prefix path — useful as a reference implementation when a hard constraint (single DB, no schema creation rights, DBA policy) forces the shared-schema model.
  • Modular monolith / plugin table namespacing: giving each module or plugin its own table prefix (billing_, crm_) inside one database to make ownership and cleanup legible, and to allow a module to be dropped or extracted later.
  • Legacy database integration: mapping a new application onto an existing schema that already enforces a naming convention (vendor prefix, environment prefix like stg_/prod_ sharing one server).
  • Build vs. buy on infrastructure plumbing: this is squarely a "build" candidate. Doctrine exposes a pluggable naming strategy; a prefixed table/column strategy is roughly 50–100 lines of code and is fully testable in-house. The package saves hours, not weeks, and it is not a differentiator.
  • Environment isolation on shared infrastructure: prefixing tables per environment so staging and production (or multiple preview environments) can coexist on a single database instance.
  • Vendor/risk posture: adoption signals here are effectively zero (1 star, 0 dependents, single maintainer). That is itself a product decision input — the default should be "reimplement the pattern," not "take the dependency."

When to Consider This Package

Consider it only if all of the following hold:

  • The stack is Symfony + Doctrine ORM. Note the mismatch: despite the "Laravel/PHP" framing, this is a Symfony bundle. It is not usable in Laravel/Eloquent without an ORM swap, so for a Laravel roadmap item this package is out of scope entirely.
  • A prefixing scheme is a non-negotiable external constraint — dictated by a DBA, a legacy schema, or shared-host policy — rather than an internal preference.
  • The team is not comfortable writing or debugging a custom Doctrine naming strategy, so an existing (if under-tested) implementation has marginal value.
  • You intend to vendor/fork it and own the code, accepting full maintenance responsibility.

Look elsewhere (or build in-house) if:

  • You are on Laravel, Eloquent, or any non-Doctrine ORM — hard incompatibility.
  • You need multi-tenant isolation guarantees (per-tenant backups, per-tenant scaling, blast-radius containment). Prefixes in a shared schema do not deliver these; a schema- or database-per-tenant strategy does, and this package is irrelevant to that decision.
  • You need active maintenance, security response, or support — all absent here.
  • Your schema changes frequently: prefixing interacts with migrations, foreign-key and index naming, sequence naming, and the schema-diff tooling. These are exactly the places where an unmaintained third-party naming strategy produces silent breakage, and where an in-house strategy you own and test is safer.

How to Pitch It (Stakeholders)

Executive summary: This package is not recommended as a dependency. It is a single-maintainer Symfony/Doctrine bundle with effectively no adoption (1 star, zero dependents), and the capability it provides — adding prefixes to table and column names — is a small, well-bounded piece of configuration plumbing that engineering can implement internally in one to two days with full test coverage. Taking the dependency would add supply-chain and maintenance risk in exchange for negligible time savings.

What it does tell us: it validates that table-prefix strategies are a real need, typically driven by shared-database environments, legacy schema conventions, or modular monoliths wanting per-module namespacing. The pattern is worth adopting where a genuine constraint exists; the package is not.

Recommendation: treat this as a design reference, not a build-versus-buy winner. If the multi-tenancy roadmap item is live, the decision worth escalating is the isolation model — shared schema with prefixes versus schema- or database-per-tenant — because that choice has cost, security, and scaling consequences well beyond naming. If that decision lands on shared schema, budget a small internal Doctrine naming strategy and own it.

Engineering ask: implement and test a prefixed naming strategy in-house, verifying it against migrations, foreign keys, indexes, and doctrine:schema:validate before rollout. If you prototype against this bundle, fork it — do not pin a live dependency to it.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin