orno/di
Orno\Di is a lightweight, PSR-11 compatible dependency injection container for PHP. It supports constructor and setter injection, autowiring, lazy service resolution, aliases, and shared instances, making it easy to wire dependencies cleanly in small applications and custom frameworks.
Illuminate\Container already provides autowiring, contextual binding, tagging, aliases, and extend-based decoration. Evaluating Orno is really a decision to reject a build/buy evaluation and standardize on the framework primitive.Consider only if all of the following are true:
Psr\Container\ContainerInterface) requirements — Orno predates PSR-11's finalization, so confirm interoperability before assuming compliance.Look elsewhere in every other case:
Illuminate\Container, app(), service providers, and contextual binding. Zero new dependency, better docs, active security process.php-di/php-di or league/container; both are maintained and widely adopted.composer.json constraints and run your own test matrix before betting a roadmap on it.To executives (one paragraph): We evaluated orno/di, a small PHP dependency-injection container, and recommend not adopting it. The package has no community traction (zero stars, zero dependents) and no visible maintenance signal, which means every bug or security issue becomes our problem to fix and every new hire has to learn a bespoke tool. Laravel already ships a more capable container at no additional cost, so adoption would add risk and total cost of ownership while delivering no incremental capability. The only commercial justification for touching this package is a funded cleanup of legacy code that already depends on it — treat that as technical debt retirement, not a platform choice.
To engineering (summary): Orno's value proposition — automatic constructor resolution and a compact API — is already fully covered by Illuminate\Container in our stack, with strictly better ergonomics: contextual binding, interfaces to implementations, tagging, aliasing, deferred providers, and extend for decoration. Adopting Orno would mean maintaining a second container, fighting two resolution strategies, and hand-rolling PSR-11 interop that the framework provides for free. Where we operate outside Laravel, standardize on a maintained PSR-11 implementation (php-di/php-di or league/container) rather than an unmaintained one. If Orno appears in a legacy service, scope a migration spike: inventory bindings, port them into service providers or a maintained container, and remove the dependency. No new code should introduce orno/di.
How can I help you explore Laravel packages today?