Laravel 中延时绑定的理解
在学习laravel的加载流程中,在初始的环节中,有一个地方卡了半天,一直不明白什么是什么意思,经过查询资料,原来是延时绑定,延时绑定一直没有用过,所以才不明白,代码如下:
- 位置为vendor/laravel/framework/src/Illuminate/Foundation/Application.php这个类中的注册初始化的时候调用此处。static::setInstace($this)中setinstance为下图容器中的方法,$this为当前Application应用实例对象。
2.位置为vendor/laravel/framework/src/Illuminate/Container/Container.php,此处return的其实是把Application实例化对象付给了static::$instance。
3.位置为vendor/laravel/framework/src/Illuminate/Container/Container.php与上边方法相对应,此方法为获取Application实例对象的方法,如果不存在就实例化Application类,此处new static是实例化子类的方法,因为Container.php只有Application这一个子类,所以任何地方调用此方法,实例化的都是Application此应用类。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: