laravel糙解之服务容器
- laravel
- 2018-06-28
- 5260
- 2
Laravel 核心核心之一服务容器
随想
编程思想都是由某种语言的基础用法实现的,编程语言是将思想落地的工具。思想重点考虑的是架构稳定、逻辑缜密;语言实现重点考虑的是方方面面的细节和性能问题。
各种编程思想的存在主要是为了实现程序的高内聚、低耦合、易扩展等特性。
服务容器
概念
IoC - Inversion of Control 控制反转
DI - Dependency Injection 依赖注入
解释
类(A)中依赖类(C)
使用容器控制反转/依赖注入
解释
- 服务容器和工厂类有些相似
- 本质上来说,依赖注入和控制反转是对同一件事情的不同描述。
依赖注入是从应用程序的角度在描述,可以把依赖注入,即:应用程序依赖容器创建并注入它所需要的外部资源;
控制反转是从容器的角度在描述,即:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源
Laravel服务容器
用于管理类依赖和执行依赖注入的工具,主要的两个作用就是:绑定和解析。
绑定
将接口类与实现类在容器中建立对应关系,laravel中有很多种类型的绑定,ex:普通绑定、单例绑定、上下文绑定等等。此处只简单梳理bind函数的流程,其他情况大致相仿;
解析
就是从容器中获取类实例,和绑定是一个相反的操作。
laravel相关说明
- laravel服务容器是一个升级版的工厂类,非常灵活、巧妙的处理依赖和注入问题,减少了系统的耦合;
- laravel服务容器维护了别名、回调等多种功能,所以在追laravel源码的时候需要分清主次,否则容易迷失在laravel的源码之中。
- make和bind有些模糊,可以下载后放大看
s
shaechiu
写的很好啊,画图工具可以推荐一下
6年前 · 北京 北京
路飞君1234 博主
回复 shaechiu:processon,拿走不谢
6年前 · 北京 北京