silpo-tech/odm-bundle
Symfony bundle that integrates Doctrine ODM (MongoDB) document mapping into your app, with ready-made services, configuration and DI wiring so you can set up document-based persistence quickly and consistently.
Architecture fit — poor, and this is the headline finding. Despite being indexed alongside Laravel/PHP packages, silpo-tech/odm-bundle is a Symfony bundle, not a Laravel package. The *Bundle naming convention, the -bundle suffix, and the "Common ODM bundle" description all point to a Composer package of type symfony-bundle that registers document-mapping services into a Symfony DI container via an Extension class, a Bundle subclass, and possibly compiler passes. Laravel has no bundle registry, no registerBundles() kernel hook, and no equivalent execution point for Extension::load() or compiler passes. The Laravel analog is a service provider plus a publishable config file — structurally similar in intent, mechanically incompatible in practice. Adopting this package means re-implementing its registration layer, not consuming it.
Integration feasibility — installable but inert. composer require will almost certainly succeed: laravel/framework already depends on symfony/http-kernel transitively, so the Bundle base class autoloads even in a Laravel app. That is the trap. The package will install cleanly, appear in composer.json, and do nothing. No error, no warning — the bundle simply never boots. Any value must be extracted manually from its source.
Technical risk — high for a dependency, low as reference material. Zero stars, zero dependents, and a 0.03 score mean no third-party validation, no issue corpus, no Stack Overflow answers, and no ecosystem pressure to keep the public API stable. This is an internal Silpo artifact published to Packagist for their own microservices; the public surface is a side effect, not a product. The October 2025 release date suggests active internal maintenance, but that cadence serves their needs, not ours. Mitigating factor: the license is MIT and the codebase is likely small, so a source audit is cheap — hours, not weeks.
Key questions to resolve before any commitment.
composer.json hard-require symfony/framework-bundle? If so, pulling this into a Laravel app drags in the full FrameworkBundle, which is heavy and risks container and version conflicts.Stack fit. Language-level compatibility is likely fine — PHP 8.x, PSR-4 autoloading, standard Composer metadata. The coupling is entirely to Symfony's framework conventions, not to the language. That distinction matters: it means the code is readable and portable, but not runnable as-is.
Migration path — three options, ranked.
Extension::load() tree, and translate it into a ServiceProvider with a published config file and explicit bindings. Effort: 2–4 days for a developer comfortable with Symfony DI, 1–2 weeks for a Laravel-only developer. Preserves the value, removes the framework coupling, and puts the code under our maintenance.Compatibility. Confirm the symfony/* version constraints against our current Laravel release before writing any code. If the package requires symfony/framework-bundle, treat that as a blocker for options 1 and 2 until the dependency is verified as optional. Also check for conflict and replace entries, which are common in internal packages and can silently break other dependencies.
Sequencing.
Extension, call load(), and dump the resulting container definitions to see exactly what the bundle would have registered.Maintenance. Adopting this package means adopting a fork. With zero dependents, no one else will file the bugs we file or merge the fixes we need. Every Symfony component bump, every PHP minor release, and every backend driver change becomes our patch to write. Budget ongoing ownership, not a one-time integration cost.
Support. Effectively nil. There is no public documentation, no issue history to mine, and no realistic expectation that the maintainers owe anything to a zero-star consumer. Treat questions to the upstream team as a courtesy, not a support channel, and do not build a schedule around a response.
Scaling. The bundle itself is almost certainly stateless wiring; scaling characteristics belong to the underlying ODM and datastore. The scaling risk is organizational, not technical: if the extraction is done poorly, connection and mapping configuration becomes scattered across providers and hard to tune under load.
Failure modes.
Ramp-up. A developer fluent in Symfony DI can audit and port this in days. A Laravel-only team must first learn to read Extension, Configuration, and compiler-pass code — add a week of ramp-up before any integration work begins. That skill investment is reusable, but it should be an explicit line item in the estimate.
Recommendation. Do not adopt this as a runtime dependency. Treat it as reference source code: audit it, extract whatever document-mapping logic is genuinely non-trivial, and reimplement the wiring natively in Laravel. The package's low score and zero dependents are not a quality judgment — they are a signal that this is an internal artifact with no external contract, and the cost of depending on it exceeds the cost of reading it.
How can I help you explore Laravel packages today?