#### 第五讲:依赖注入
在软件工程领域,依赖注入(Dependency Injection,简称DI)是用于实现控制反转(Inversion of Control,简称IoC)的最常见的方式之一,而控制反转的目的是为了更好的解耦。
依赖注入其实并不神奇,当你理解了ThinkPHP5的依赖注入的实现原理后,会发现并没有想象中那么晦涩难懂。
ThinkPHP5的依赖注入主要指针对访问控制器的依赖注入,实现方式主要包括**架构函数注入**和**操作方法注入**,表现方式则是在控制器架构函数和操作方法中一旦对参数进行对象类型约束则会自动触发依赖注入(再通俗点说就是自动实例化该对象),由于访问控制器的参数都来自于URL请求,普通变量就是通过参数绑定自动获取,对象变量则是通过依赖注入生成,下面分别举例说明。
#### 自动实例化规则
那么现在大家就会奇怪,依赖注入的对象是怎么实例化的呢?确实,对象实例化的方式很多也很复杂,ThinkPHP5通过一种系统的约定规则来完成,其实依赖注入的自动对象实例规则有4种,会依次进行检查是否符合,如果符合就自动进行该对象的实例化。
#### 总结
本讲主要讲述了依赖注入的概念和使用方法,并且掌握了如何进行架构函数和操作方法的依赖注入,下一讲的内容是错误和异常处理。