Weave Code
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

Dependency Injection Laravel Package

draw/dependency-injection

Add-ons for Symfony DependencyInjection to simplify integrating subcomponents into a main bundle. Provides Integration classes and traits to auto-register integrations, load enabled configuration, and prepend container configuration when components are installed.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Modular Framework Architecture: Enables a clean, scalable way to integrate subcomponents into a main Symfony bundle, reducing technical debt and improving maintainability.
  • Feature Flagging & Dynamic Configuration: Supports runtime enabling/disabling of components via YAML configuration, aligning with progressive delivery and feature toggle strategies.
  • Build vs. Buy Decision: Justifies building a custom integration layer over buying monolithic solutions (e.g., full-stack frameworks) when needing granular control over Symfony components.
  • Roadmap for Microservices/Monorepos: Facilitates decomposing large bundles into smaller, independently versioned components while preserving a unified configuration layer.
  • Use Cases:
    • Plugin Systems: Build extensible platforms (e.g., CMS, SaaS) where third-party modules can integrate seamlessly.
    • Legacy Modernization: Gradually migrate monolithic Symfony apps to modular architectures without rewriting core logic.
    • Multi-Tenancy: Dynamically load tenant-specific components via DI configuration.

When to Consider This Package

  • Adopt When:

    • Your Symfony project requires modularity (e.g., >50% of the codebase is composed of reusable subcomponents).
    • You need runtime configuration control over component loading (e.g., feature flags, A/B testing).
    • Your team prioritizes developer experience (DX) by reducing boilerplate for bundle integration.
    • You’re building a framework or platform where plugins/modules must integrate cleanly (e.g., e-commerce, CRM).
    • Existing solutions (e.g., Symfony Flex recipes, manual Extension classes) are too verbose or lack dynamic enabling/disabling.
  • Look Elsewhere If:

    • Your project is small-scale (<10 bundles) with minimal integration needs (manual Extension classes suffice).
    • You’re not using Symfony (this package is Symfony-specific).
    • You require advanced DI features (e.g., circular references, proxies) already covered by Symfony’s core DI component.
    • Your team lacks PHP/Symfony expertise to debug integration issues (low stars/maturity may indicate untested edge cases).

How to Pitch It (Stakeholders)

For Executives: "This package lets us build a scalable, plugin-ready Symfony architecture with minimal overhead. Instead of writing repetitive integration code for each component, we can dynamically enable/disable features at runtime—critical for our [multi-tenant/SaaS/modular] roadmap. It reduces technical debt by standardizing how components interact, similar to how WordPress plugins integrate. Early adoption could cut development time for new features by 30% while improving maintainability."

For Engineering: *"This solves our pain point of manually stitching together Symfony bundles. The IntegrationTrait automates:

  • Auto-discovery of subcomponents (no more forgetting to register them).
  • Config-driven enabling/disabling (e.g., toggle enabled: false in YAML to disable a component).
  • Clean separation of concerns—each subcomponent owns its DI logic while the main bundle orchestrates them.

Tradeoff: It’s a niche tool (Symfony-only, low adoption), but the payoff is faster iterations for modular projects. Let’s prototype it for [Component X] and measure dev time savings."*

For Developers: *"Imagine writing a new Symfony bundle where you don’t have to duplicate the load(), prepend(), and getConfiguration() methods for every subcomponent. This package gives you:

  • Boilerplate reduction: One provideExtensionClasses() method lists all integrations.
  • Dynamic control: Enable/disable components via YAML without code changes.
  • Future-proofing: Works with existing Symfony DI and plays well with Flex recipes.

Downside: It’s untested in production (0 stars), so we’d need to validate it against our [use case Y]. But the pattern is battle-tested in the DrawFrameworkExtraBundle."*

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.
yandex/translate-api
voku/simple_html_dom
league/flysystem-vfs
bkwld/upchuck
filament/spatie-laravel-tags-plugin
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php