TP5 源码分析-App类里面的$this解析

本文探讨了TP5框架中App类的源码,特别是如何通过$this对象访问如hook、config和request等组件。文章指出App类继承自Container,利用PHP的魔术方法,当尝试调用不存在的方法时,Container会介入。进一步解释了Container的make方法在对象实例化过程中的作用,以及内部的bind方法如何定义和管理对象绑定。
摘要由CSDN通过智能技术生成

这个类里面有很这样的使用例如$this->hook->import(); $this->config->get(); $this->request->init();等等
你知道这个对象怎么来的吗?不急,亮仔一一道来:

  1. app类会继承容器Container(这是关键)
  2. 容器有个魔术方法很重要 例如当调用$this->hook时找不到会调用魔术方法
    public function __get($name)
    {
   
        return $this->make($name);
    }

3.接着就是容器Container里面的make方法 ,这个make方法里面就是搞事情返回对象

 public function make($abstract, $vars = [], $newInstance = false)
    {
   
        if (true === $vars) {
   
            // 总是创建新的实例化对象
            $newInstance = true;
            $vars        = [];
        }
         //容器标识别名有没有
        $abstract = isset($this->name[$abstract]) ? $this->name[$abstr
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值