Laravel 中延时绑定的理解

在学习laravel的加载流程中,在初始的环节中,有一个地方卡了半天,一直不明白什么是什么意思,经过查询资料,原来是延时绑定,延时绑定一直没有用过,所以才不明白,代码如下:

  1. 位置为vendor/laravel/framework/src/Illuminate/Foundation/Application.php这个类中的注册初始化的时候调用此处。static::setInstace($this)中setinstance为下图容器中的方法,$this为当前Application应用实例对象。

Laravel 中延时绑定的理解

2.位置为vendor/laravel/framework/src/Illuminate/Container/Container.php,此处return的其实是把Application实例化对象付给了static::$instance。
Laravel 中延时绑定的理解
3.位置为vendor/laravel/framework/src/Illuminate/Container/Container.php与上边方法相对应,此方法为获取Application实例对象的方法,如果不存在就实例化Application类,此处new static是实例化子类的方法,因为Container.php只有Application这一个子类,所以任何地方调用此方法,实例化的都是Application此应用类。
Laravel 中延时绑定的理解

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!