zoukankan      html  css  js  c++  java
  • laravel服务容器(IOC控制反转,DI依赖注入),服务提供者,门脸模式

    laravel的核心思想:

    服务容器:

    容器:就是装东西的,laravel就是一个个的对象

    放入:叫绑定

    拿出:解析

    使用容器的目的:这里面讲到的是IOC控制反转,主要是靠第三方来处理具体依赖关系的解耦.

    比如:A依赖B

    B会注入到IOC容器中,A在使用对象B的时候,是去IOC容器中去取出对象B,改为对象D,就可以直接使用了

    依赖注入:就是一种设计思想,将一个实例变量传递到一个对象中去.laravel的实现是通过反射实现的

    比如在controller 中我们只要使用request参数就可以取到request对象.(java中也有这个思想)

    =======================控制反转======================================

    laravel中是在文件publicindex.php中引入的bootstrap

    我们来到bootstrap文件夹去看看,app.php

    里面讲到的是把一些字符串绑定到对象中去.=---=---这就会绑定的过程.

    然后回到public]index.php中

    先获取容器->make->使用字符串获取对象

    =====================================================================

    服务提供者

    绑定是由服务提供者来做,主要是通过两个方法来做

    register() 他是在所有的服务提供者提供服务之前注册的

    boot()他是在所有的服务提供者加载之后注册的

    protected $defer = true 延时服务提供

    以上都是在configapp.php中提供的provider中

    门脸模式

    我们平常使用的类一般都是new 一个,或者是从容器中获取

    而门脸模式可提供的类中提供了静态可调用的方法

    比如: equest::all()

    以上都是在configapp.php中提供的,aliases中可以查找

  • 相关阅读:
    【UNR #1】火车管理
    NOIP2018保卫王国
    [SCOI2015]国旗计划[Wf2014]Surveillance
    [TJOI2015]线性代数(最小割)
    [AH2017/HNOI2017]礼物(FFT)
    BZOJ5093图的价值(斯特林数)
    [NOI2018]你的名字(后缀自动机+线段树)
    [SDOI2015]序列统计(多项式快速幂)
    [NOI2014]购票(斜率优化+线段树)
    [CQOI2017]小Q的表格(数论+分块)
  • 原文地址:https://www.cnblogs.com/gaosf/p/9935961.html
Copyright © 2011-2022 走看看