kutny/autowiring-bundle
Symfony bundle that adds autowiring support for service definitions and controller arguments. It resolves dependencies by type-hint, reducing manual configuration and boilerplate in Symfony apps, especially useful when native autowiring is unavailable or you need extra container conveniences.
Architecture fit — poor, and arguably a category error. kutny/autowiring-bundle is a Symfony bundle, not a Laravel package. It hooks into Symfony's CompilerPass / ContainerBuilder pipeline to add reflection-based constructor injection. Laravel has no bundle concept, no compiler passes, and no shared DI internals with Symfony — Illuminate\Container is an independent PSR-11 implementation with its own reflection-based auto-resolution. Laravel has resolved typed constructor dependencies automatically since 5.x, so the capability this package provides is already native on the target stack.
Integration feasibility — not feasible at acceptable cost. Making this work under Laravel would mean reimplementing its compiler pass against Illuminate\Container, which is effectively writing a new package whose only inherited asset is a 2016 design. There is no adapter layer, no service provider, and no PSR-11 interoperability (the package predates PSR-11's 2018 ratification). A one-day spike is sufficient to confirm incompatibility; anything beyond that is sunk cost.
Technical risk — high and non-mitigable.
Key questions for the requesting team.
composer.lock transitive dependency? If so, the work is removal, not integration.Stack fit — none on Laravel. The package assumes Symfony\Component\HttpKernel\Bundle\Bundle and the Symfony DI component. Neither is present in a standard Laravel install. The only environment where it fits is a Symfony application pinned below 3.3.
Migration path — recommend rejection, with a documented alternative. For any team that genuinely needs the behavior:
autowire: true in services.yaml), available since Symfony 3.3 (2017) — this package's entire reason for existing was upstreamed nearly a decade ago.Compatibility. No Laravel service provider, no extra.laravel manifest, no PSR-11 container, no PHP 8 support. Expect a hard composer require failure on the platform constraint before any code-level incompatibility surfaces.
Sequencing. Do not place this on a roadmap. The only sequence is: (1) confirm the request's underlying need in a 30-minute conversation; (2) if unresolved, time-box a spike to one day to produce a written incompatibility finding; (3) record the decision as an ADR so the same request does not recur; (4) if it exists as a transitive dependency, schedule removal and pin/replace the parent package.
Maintenance. Zero upstream maintenance. Adoption means we own the code permanently, including the compiler pass, the PHP-version compatibility work, and the security posture. That is a recurring cost for a capability the framework provides free.
Support. No maintainer, no vendor, no release cadence, no issue triage, no security advisory channel. Documentation is a README. Internal engineers would be the sole support tier for a component they did not design.
Scaling. Runtime performance is a non-issue: DI wiring resolves at container compile time, so throughput impact is negligible either way. The scaling concern is organizational — every engineer who touches this must learn Symfony DI internals to debug it, and that knowledge has no reuse on a Laravel codebase.
Failure modes.
Ramp-up. Near-zero engineering value and non-trivial cognitive cost. The package teaches an approach to DI that the target framework superseded, so onboarding effort produces no transferable capability.
Recommendation. Reject. This is an archived, single-author, zero-adoption Symfony bundle whose function was absorbed into Symfony's core in 2017 and was never applicable to Laravel. The correct TPM action is to close the request with the alternatives above and, if the package is already present transitively, open a removal ticket rather than an integration ticket.
How can I help you explore Laravel packages today?