总结:
facade没有你想的那么高大上,就拿下面的这个案例使用白花文解释
1.咱们第一步确定是建立一个facade的一个代理类WeinxinUtilFacade继承facade
2.在common里边注册核心类库静态代理(其实就是给实际类起别名),实例化实际类的时候,直接实例化代理类便可
3.就以下案例,自己是直接use app\util\WeixinUtil。而后实例化调用check方法便可
4.可是使用facade后,就变成了使用use app\facade\WeixinUtilFacade(在common里边不是已经将app\util\WeixinUtil从新命名给了app\facade\WeixinUtilFacade,因此在这里也是能够直接check方法,实际仍是实际类的方法)
Loader 是为了注册类库别名使用的
左边是facade的别名,右边是facade的代理类(下拉看解释)
1.首先咱们仍是建立一个WeixinUtilFacade这个类php
2.注册核心类库的静态代理,app
这段代码是facade代理类,右边是实际类,也能够理解为左边是右边的别名,实例化左边的这个类,也能够直接调用左边类的方法spa
// 应用公共文件 use think\Facade; use think\Loader; // 注册核心类库的静态代理 Facade::bind([ // 就是facade的代理类=>实际类 \app\facade\WeixinUtilFacade::class=>\app\util\WeixinUtil::class, ]);
3.在Weixin.php token的验证代理
直接实例化代理类,而后调用方法便可,这里静态调用的其实就是util类的checkcode
<?php namespace app\index\controller; use think\Controller; use Request; use Log; use app\facade\WeixinUtilFacade; use app\util\WeixinUtil; class Weixin extends Controller { /** * 显示资源列表 * * @return \think\Response */ public function index() { // return 123; return WeixinUtilFacade::check(); // $WeixinUtil = new WeixinUtil(); // return $WeixinUtil->check(); } }
4.WeixinUtil这个类继承
Loader 是为了注册类库别名使用的token
在common里边注册核心类库静态代理时,也能够对注册的静态类库进行起别名资源
用法也就很简单了,左边是起的别名,右边便是注册的核心类库静态代理名(也就是静态代理)io