服务容器
简介
Laravel 的服务容器是一个管理类依赖和执行依赖注入的强力工具。依赖注入是个花俏的名词,事实上是指:类的依赖通过构造器或在某些情况下通过「setter」方法「注入」。
与 Laravel 的差异
Lumen 使用了与 Laravel 框架相同的服务容器,所以,你可以使用它们所有强大的功能。有关容器的完整文档,请阅读 Laravel 容器文档 。
获取服务容器
Laravel\Lumen\Application
实例是 Illuminate\Container\Container
的扩展,所以你可以当做服务容器来使用。
通常我们会在 服务提供者 注册我们的容器解析规则。当然,你可以使用 bind
、singleton
、 instance
,以及容器提供的其他方法。请记住,所有这些方法都记录在 Laravel 服务容器文档 中。
解析实例
想要从服务容器中解析实例,你可以在大部分的功能类里自动解析(依赖注入),如路由 Closure、控制器的构造方法、控制器方法、中间件、事件监听器,或者队列任务等。或者,你也可以在应用程序中的任何地方使用 app
函数来进行解析:
$instance = app(Something::class);
查看更多 Laravel 中文文档 信息