slick/di
Slick\DI is a lightweight dependency injection container for PHP that wires services through autowiring, explicit bindings, and lazy resolution. It offers a small, PSR-11 friendly API for managing object lifecycles in Laravel, Slim, and standalone applications.
Illuminate\Container already provides autowiring, contextual binding, interface binding, tagging, and method injection. v2.10.0 does not change that answer — it narrows the capability gap slightly but adds nothing Laravel lacks.NOASSERTION) is still unresolved, and that is what gates redistribution.2.10.0 version line indicates a long-running release history rather than the "one release and done" picture the earlier metadata suggested. Treat the project as maintained but unadopted — no meaningful dependent community, no visible governance — rather than abandoned.Bottom line for planning: still a replaceable implementation detail, not a platform commitment. Nothing in the product surface should depend on it. The release makes it a more credible implementation detail for non-Laravel code; it does not make it a platform.
Consider it when all of the following hold:
#Autowire attributes on object creation, name-based resolution of scalar arguments (instead of throwing on string services), and nullable arguments resolving to null rather than failing. Those three together remove a large share of the manual binding boilerplate that previously made small containers annoying to use.NOASSERTION still means GitHub could not detect a recognized license, and v2.10.0 does not address it. Until counsel confirms the actual terms, this cannot ship in a commercial or redistributed product. This remains the single hardest blocker.null instead of failing fast. Validate this against your error-handling expectations before adopting.Look elsewhere when:
illuminate/container (framework-native, zero new dependency), Symfony DependencyInjection (battle-tested, widely deployed), PHP-DI (mature, autowiring-focused, active), League\Container (small, PSR-11, active).Caveat: this update is driven by the v2.10.0 release note plus repository metadata, not a code audit. If the portability use case is real, budget a one-day spike against the new scalar/nullable resolution behavior before committing.
To executives: We revisited the third-party dependency-injection container after a new release. The maintainers shipped useful features — easier autowiring, fewer manual bindings — which tells us the project is alive rather than abandoned. It does not change our recommendation. The package still has no meaningful user base, and the license is still unresolved, which means we would own the legal and maintenance risk ourselves in exchange for capability we already get free in Laravel. If we ever need a container outside Laravel, this is now a reasonable candidate to compare, not a default to adopt.
To engineering: v2.10.0 closes some of the ergonomics gap: #Autowire on setters at creation time, scalars resolved by parameter name instead of throwing, and nullable arguments defaulting to null. That is real convenience for standalone libraries and CLI tools. The trade-offs are unchanged for us: a second resolution graph inside a Laravel app, two places to look when a class won't resolve, and worse incident debugging for zero capability gain. Watch the new implicit behavior too — name-based scalar resolution and silent null can hide typos, so anything adopting this needs tests that assert failures, not just successes. The docs were also pulled pending a GitHub Pages migration, so source is the only reliable spec right now.
Recommendation: No-go for production adoption inside Laravel — keep the framework container as the standard. Upgrade the portability track from "not viable" to "viable candidate": if a genuine framework-portability requirement appears, run a timeboxed spike comparing this package, PHP-DI, and League\Container against our real binding patterns, now including the v2.10.0 implicit-resolution behavior. Revisit only with a cleared license and a named internal owner.
How can I help you explore Laravel packages today?