zoukankan      html  css  js  c++  java
  • 底层原理 —— 服务容器

    1、laravel服务容器是一个用于管理类依赖和执行依赖注入的强大工具 ,其实质是通过狗仔函数或者某些情况下通过setter方法将类依赖注入到类中

    2、几乎所有的服务容器绑定都是在服务提供者中完成。因此本文档的演示例子用到的容器都是在服务提供者中绑定。

    3、

    简单的绑定

    在一个服务提供者中,可以通过 $this->app 变量访问容器,然后使用 bind 方法注册一个绑定,该方法需要两个参数,第一个参数是我们想要注册的类名或接口名称,第二个参数是返回类的实例的闭包:

    $this->app->bind('HelpSpotAPI', function ($app) {
        return new HelpSpotAPI($app->make('HttpClient'));
    });

    注意到我们将容器本身作为解析器的一个参数,然后我们可以使用该容器来解析我们正在构建的对象的子依赖。

    绑定一个单例

    singleton 方法绑定一个只会解析一次的类或接口到容器,然后接下来对容器的调用将会返回同一个对象实例:

    $this->app->singleton('HelpSpotAPI', function ($app) {
        return new HelpSpotAPI($app->make('HttpClient'));
    });

    绑定实例

    你还可以使用 instance 方法绑定一个已存在的对象实例到容器,随后调用容器将总是返回给定的实例:

    $api = new HelpSpotAPI(new HttpClient);
    $this->app->instance('HelpSpotApi', $api);
  • 相关阅读:
    Vscode开发工具中的Simple React Snippets插件,对React开发有哪些便捷
    函数防抖和节流
    4.怎么样用CSS实现一个loading效果
    3.常见清除浮动的
    2.css处理各种溢出
    1. css画三角形
    2.javascript中call()和apply()区别
    1.js的继承的实现方法
    css、js小技巧
    JS函数声明和函数表达式的关系
  • 原文地址:https://www.cnblogs.com/hanmengya/p/10843426.html
Copyright © 2011-2022 走看看