laravel糙解之服务容器

php   laravel  

Laravel 核心核心之一服务容器

随想

      编程思想都是由某种语言的基础用法实现的,编程语言是将思想落地的工具。思想重点考虑的是架构稳定、逻辑缜密;语言实现重点考虑的是方方面面的细节和性能问题。

      各种编程思想的存在主要是为了实现程序的高内聚、低耦合、易扩展等特性。

服务容器

概念
   IoC - Inversion of Control 控制反转
   DI - Dependency Injection 依赖注入
解释
  1. 类(A)中依赖类(C)

  2. 使用容器控制反转/依赖注入

解释
  • 服务容器和工厂类有些相似
  • 本质上来说,依赖注入和控制反转是对同一件事情的不同描述。
    1. 依赖注入是从应用程序的角度在描述,可以把依赖注入,即:应用程序依赖容器创建并注入它所需要的外部资源;
    2. 控制反转是从容器的角度在描述,即:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源

Laravel服务容器

      用于管理类依赖和执行依赖注入的工具,主要的两个作用就是:绑定和解析。

绑定

      将接口类与实现类在容器中建立对应关系,laravel中有很多种类型的绑定,ex:普通绑定、单例绑定、上下文绑定等等。此处只简单梳理bind函数的流程,其他情况大致相仿;

解析

      就是从容器中获取类实例,和绑定是一个相反的操作。

laravel相关说明

  1. laravel服务容器是一个升级版的工厂类,非常灵活、巧妙的处理依赖和注入问题,减少了系统的耦合;
  2. laravel服务容器维护了别名、回调等多种功能,所以在追laravel源码的时候需要分清主次,否则容易迷失在laravel的源码之中。
  3. make和bind有些模糊,可以下载后放大看


评论 2

发表评论


s

shaechiu

写的很好啊,画图工具可以推荐一下

6年前 · 北京 北京

路飞君1234 博主

回复 shaechiu:processon,拿走不谢

6年前 · 北京 北京

Top