symfonyid/symfony-bundle-plugins
A Symfony bundle that adds a plugin system to your application, letting you discover, register, and manage plugins through dependency injection tags and compiler passes for a clean, modular architecture.
Consider it when:
Look elsewhere when:
EventDispatcher, and the bundle Extension/Configuration classes cover the large majority of "plugin" requirements. Reach for a third-party abstraction only after confirming the native path is genuinely insufficient.Due diligence required before adoption: read the source end to end (it is small), confirm the Symfony version constraints match our LTS target, verify it composes with our existing compiler passes and cache warmup, and write a removal plan — because the most likely future state is that we replace it with our own 200-line implementation.
For executives (one paragraph): We are evaluating a small open-source component that lets a Symfony bundle accept plug-ins, so third parties or internal teams can extend our product without us modifying core code. It is a narrow technical enabler, not a platform: it has no meaningful adoption, no community, and no support commitment, so the realistic play is to study or vendor it rather than depend on it. The strategic value is optionality — it lets us test an extensibility model cheaply before committing engineering time to building one. Recommendation: fund a short, time-boxed spike to validate the plugin contract against a real use case; do not put it on a production path until we own it.
For engineering leads: This is a Symfony-only package (the brief's "Laravel" framing is inaccurate — flag it in any shared doc). It provides plug-in support for bundles, which is the same problem space as tagged services plus compiler passes. Because it has zero stars and zero dependents, we should treat it as reference implementation: read it, prototype with it if it accelerates the spike, and plan to vendor or replace it. Success criteria for the spike are concrete: a plugin can be dropped in, discovered, wired into the container, and disabled cleanly — without touching the host bundle. If native Symfony mechanisms reach that bar faster, we use those and close the ticket.
How can I help you explore Laravel packages today?