mpp/referential-bundle
mpp/referential-bundle is a Symfony bundle for managing referentials: structured reference data like categories, statuses, and code lists. It provides reusable entities, forms, and admin tooling to keep application dictionaries consistent and easy to maintain.
Reference-data strategy: code vs. data. The core decision a "referential" layer forces is whether lookup lists (countries, currencies, categories, risk profiles, fee schedules, regulatory classifications) live as enums/config in code or as DB-backed tables with an admin surface. This package is a worked example of the second path — it registers services, container parameters, and Doctrine mappings so controlled vocabularies are configured once and injected consistently. That is the pattern to evaluate against, whether or not you adopt the code.
Build vs. buy vs. borrow. With 0 stars, 0 dependents, and a score of 0, this is not a "buy." The real decision it supports is borrow: read the data model and conventions, then either vendor/fork or reimplement in-house. Frame the output of the evaluation as an internal design document, not a dependency addition.
Framework fit as a gating decision. Despite the Laravel framing, the -bundle suffix and vendor namespace indicate this is a Symfony bundle — Symfony kernel, DI container, service tags, and almost certainly Doctrine ORM. For a Laravel shop this is a domain-model reference, not an installable package; that constraint should be surfaced before anyone adds it to a backlog ticket. For a Symfony shop it is at least architecturally conventional.
Roadmap input for internal tooling. If the backlog contains "let non-engineers edit the country list / taxonomy / fee schedule without a deploy," a referential component is the enabler. This package is a cheap data point on how a peer fintech (Mon Petit Placement) modeled that problem — useful for scoping, estimating, and writing acceptance criteria even if the code is never used.
Compliance and audit scope. Fintech-adjacent reference data usually carries requirements around who changed which value, when, and why. Evaluating this bundle forces the question early: does our reference data need versioning, approval workflows, and change history? Cheap to design in now, expensive to retrofit.
API/versioning hygiene. Whether your application code references stable codes/slugs or raw database IDs is a product-level decision with long-tail consequences (exports, integrations, partner APIs). The package's conventions are a prompt to standardize on stable codes.
Worth reading (as a reference, not a dependency) when:
Look elsewhere, or build in-house, when:
For executives: This is a small, single-company Symfony bundle for managing reference data — the lookup lists behind dropdowns and business rules. It has no adoption: zero stars, zero dependents, no releases cadence, no support. It is not a dependency we should take on. It is, however, a near-zero-cost window into how a peer fintech solved a problem we will face as soon as non-engineers want to edit a taxonomy without a deploy. Recommendation: spend a few engineering hours reading the data model and conventions, produce a one-page build-vs-borrow recommendation, and move on. The cost of the evaluation is trivial; the cost of adopting it uncritically is an unmaintained dependency we would silently own.
For engineering: Treat mpp/referential-bundle as a reference implementation, not a library. It is Symfony-flavored, undocumented by any measurable signal, and unmaintained upstream. Concretely:
composer show --tree in a throwaway project). Confirm the PHP and Symfony version constraints before anything else.src/DependencyInjection/ for globally registered services or event subscribers that could alter behavior outside the bundle's namespace — internal extractions often do this.composer.json for anything touching money, eligibility, PII, or compliance.If we decide we genuinely want a referential layer, propose it as an internal module with a named owner, a changelog, audit logging, and a data-freshness process — the things this package almost certainly does not ship. Watch for two known failure modes: French-locale reference data and validation baked into a nominally "generic" model, and uncached findAll-style reads that become N+1s in a hot path.
How can I help you explore Laravel packages today?