Tp6源码分析之容器(Container)原理、组成要素、使用方法:

什么是容器(Container)?

容器是一个统一管理tp框架内置类以及自定义类的一个类,主要运用单列模式、注册树模式、依赖注入、反射机制以及工厂模式来实现对类的绑定、获取、实例化等一系列操作;

1、单例子模式(在项目中创建一个唯一的实力对象):一个类 有一个私有属性的构造方法 一个静态的成员变量 一个可访问的方法来实例化对象;
2、注册树模式: 通过将对象实例注册到一个全局的对象树上,需要使用的时候从对象树上采取下来;
3.工厂模式(方便管理):定义一个接口,接口约束一个使用频率高的方法名(无方法体),在其他对象中需要使用到这个方法,但是操作逻辑又不同,那么这个时候在其类中引入接口,并且拥有一个同名的方法,该方法就可以执行所属类需要的逻辑了;
4.依赖注入:依赖注入其实本质上是指对类的依赖通过构造器完成自动注入(当前类依赖于注入类,目的就是为了更好地去使用注入类的方法、属性),理解如下代码注释;

  /**
     * tp6BaceController基类的构造方法
     * @access public
     * @param  App  $app  应用对象
     */
    public function __construct(App $app) // BaceController构造方法注入tp框架的应用类App,BaceController类就依赖于App应用类
    {
        $this->app     = $app;
        $this->request = $this->app->request;

        // 控制器初始化
        $this->initialize();
    }

5.反射机制(ReflectionClass)重点:根据标识(可以是文件路径或者是别名)去获取类的方法、注释、成员变量等等信息、或对类进行实例化;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值