slince/di
A lightweight, PSR-11 compatible dependency injection container for PHP. Slince DI supports constructor and setter injection, service providers, aliases, lazy loading, and shared instances, giving you a simple, flexible foundation for managing object dependencies in small to medium applications.
Illuminate\Container directly) in library code is a real architectural decision. This package makes that decision concrete and testable at low cost, and informs whether "framework-agnostic core" is a viable roadmap theme or just aspirational.Psr\Container\ContainerInterface, this is one way to satisfy that requirement without pulling in a heavier container.Illuminate\Container provides autowiring, contextual binding, tagging, decorators, and lifecycle hooks, and is maintained by the framework team. This package is not a substitute, and treating it as one would be a net-negative decision.Consider it only when all of the following hold:
get() and has() — with no need for autowiring, contextual binding, tagged collections, service providers, or compile-time optimization.Look elsewhere when:
php-di/php-di, Symfony's DI component, or Laravel's container — all have large communities, documentation, and active release cadence.Net read on the scores: opportunity: 0.38 with score: 0.55 is consistent with "legitimate but commoditized." PSR-11 containers are a solved problem with several well-maintained incumbents, so the upside is bounded and the differentiation is near zero.
To executives (one line): A small, standards-compliant dependency injection library that could let parts of our code run outside Laravel — but it's a low-maturity project, so I recommend a timeboxed spike rather than an adoption commitment.
To engineering: This is a PSR-11 container — the interface is standard, the implementation is not battle-tested. It is only relevant for code that must live outside the Laravel runtime, and only if we're confident we'll never need autowiring, contextual binding, or tagged services. Before we adopt, we should (a) confirm the upstream repo and maintenance status, (b) spend a day proving the "framework-agnostic core" hypothesis with it, and (c) benchmark it against php-di/php-di and Symfony DI on the same spike. If the spike succeeds, the more defensible move is likely to implement PSR-11 against a maintained container — the standard is the asset, not this package.
Recommendation: Hold. Do not add to the dependency manifest today. Fund a short, scoped evaluation only if a roadmap item actually requires out-of-framework DI; otherwise revisit when that need becomes real.
How can I help you explore Laravel packages today?