Laravel中Facade怎么用
这篇文章给大家分享的是有关Laravel中Facade怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、高淳ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的高淳网站制作公司
Facade的简单使用
数据库的使用:
$users = DB::connection('foo')->select(...);
IOC容器
众所周知,IOC容器是 Laravel 框架的最最重要的部分。它提供了两个功能,IOC和容器。
IOC(Inversion of Control),也叫控制反转。说白了,就是控制对象的生成,使开发者不用关心对象的如何生成,只需要关心它的使用即可。
而通过IOC机制生成的对象实例需要一个存放的位置,以便之后继续使用,便是它的容器功能。
这次不准备讲解IOC容器的具体实现,之后会有文章详细解读它。关于IOC容器,读者只需要记住两点即可:
根据配置生成对象实例;
保存对象实例,方便随时取用;
简化后 Facade 类
instances[$name]; } public static function __callStatic($method, $args) { $instance = static::getFacadeRoot(); if (! $instance) { throw new RuntimeException('A facade root has not been set.'); } switch (count($args)) { case 0: return $instance->$method(); case 1: return $instance->$method($args[0]); case 2: return $instance->$method($args[0], $args[1]); case 3: return $instance->$method($args[0], $args[1], $args[2]); case 4: return $instance->$method($args[0], $args[1], $args[2], $args[3]); default: return call_user_func_array([$instance, $method], $args); } } }
代码说明:
$app中存放的就是一个IOC容器实例,它是在框架初始化时,通过 setFacadeApplication() 这个静态方法设置的
它实现了 __callStatic 魔术方法
getFacadeAccessor() 方法需要子类去继承,返回一个string的标识,通过这个标识,IOC容器便能返回它所绑定类(框架初始化或其它时刻绑定)的对象
通过 $instance 调用具体的方法
创建自己的Facade:
TEST1 的具体逻辑:
TEST1 类的Facade:
使用:
use facades\Test1Facade;Test1Facade::hello(); // 这是 Facade 调用解释:
facades\Test1Facade 调用静态方法 hello() 时,由于没有定义此方法,会调用 __callStatic;
在 __callStatic 中,首先是获取对应的实例,即
return static::$app->instances[$name];
。这其中的$name
,即为facades\Test1
里的 test1$app, 即为 IOC 容器,类的实例化过程,就交由它来处理。
感谢各位的阅读!关于“Laravel中Facade怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
本文标题:Laravel中Facade怎么用
分享链接:http://ybzwz.com/article/gjhphe.html