【ThinkPHP】ThinkPHP中的门面(Facade)使用

news/2025/3/15 4:48:55/

门面为容器中的(动态)类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,可以为任何的非静态类库定义一个facade类。

系统已经为大部分核心类库定义了Facade,所以可以通过Facade来访问这些系统类,当然也可以为应用类库添加静态代理。

下面是一个示例,假如我们定义了一个app\common\Test类,里面有一个hello动态方法。

<?php
namespace app\common;class Test
{public function hello($name){return 'hello,' . $name;}
}

调用hello方法的代码应该类似于:

$test = new \app\common\Test;
echo $test->hello('thinkphp'); // 输出 hello,thinkphp

接下来,给这个类定义一个静态代理类app\facade\Test(这个类名不一定要和Test类一致,但通常为了便于管理,建议保持名称统一)。

<?php
namespace app\facade;use think\Facade;class Test extends Facade
{protected static function getFacadeClass(){return 'app\common\Test';}
}

只要这个类库继承think\Facade,就可以使用静态方式调用动态类app\common\Test的动态方法,例如上面的代码就可以改成:

// 无需进行实例化 直接以静态方法方式调用hello
echo \app\facade\Test::hello('thinkphp');

核心Facade类库:
(动态)类库 Facade类
think\App :think\facade\App
think\Cache : think\facade\Cache
think\Config :think\facade\Config
think\Cookie: think\facade\Cookie
think\Db :think\facade\Db
think\Env: think\facade\Env
think\Event :think\facade\Event
think\Filesystem :think\facade\Filesystem
think\Lang :think\facade\Lang
think\Log :think\facade\Log
think\Middleware :think\facade\Middleware
think\Request :think\facade\Request
think\Route :think\facade\Route
think\Session: think\facade\Session
think\Validate :think\facade\Validate
think\View :think\facade\View


http://www.ppmy.cn/news/870358.html

相关文章

破解版xftp下载地址

http://down-www.newasp.net/pcdown/soft/dys/xftp6cn.rar

Proxifier 3.42 汉化注册破解版:让所有软件通过代理访问网络

让所有软件通过代理访问网络&#xff0c;比如 ss/ssr。 下载地址

网络工程师常用的软件工具整理,最新软件安装包分享

给我一根杠杆&#xff0c;我可以撬动整个地球。 早在古希腊时期阿基米德就告诉我们工具的重要性&#xff0c;有了工具我们才能创造出现在的世界。现在的世界已经进入互联网时代&#xff0c;作为一名网络工程师&#xff0c;软件工具就是我们手中撬动网络世界的杠杆&#xff01;…

安鸾渗透实战平台——暴力破解(telnet服务破解 )

telnet简介&#xff1a; 测试连通性&#xff0c;也有用来管理路由交换设备的连通性&#xff0c;如H3C的路由器就可以实现telnet远程管理&#xff0c;只需要输入对应的用户名密码即可。Telnet服务器与Telnet客户端之间需要建立TCP连接&#xff0c;Telnet服务器的缺省端口号为23…

这是网络工程师最详细的必备软件整理,附最新安装包

鱼乘于水&#xff0c;鸟乘于风&#xff0c;草木乘于时。 “鱼是凭借着水的力量才能游动&#xff0c;鸟是凭借风的力量才能飞翔&#xff0c;花草树木是凭借着季节的变化而生长。”古人早就告诉过我们&#xff0c;看似独立的个体&#xff0c;也都是借助外力的帮助才能生存和更好的…

小黑屋破解版

小黑屋是个众所周知的数据化游戏 相信很多人都玩过 没有玩过的呢可以点下面的链接开始玩 小黑屋 尤其是里面的物质那更是多种多样。但是刷物资是需要时间的而且还要合理配置 那么我就开始想了有没有可以快速刷物资的方法呢&#xff1f; 没有过多久我就找到了突破口。 小黑屋…

【破解作品】货比多家5.1绿色破解版/破解补丁

货比多家5.1 绿色破解版-破解补丁 使用说明&#xff1a; 1. 本程序已绿货,无需安装; 2. 复制Crack文件夹中的货比多家.5.1-patch.exe程序到你安装目录中, 并运行此文件打上破解补丁。 也可Crack文件夹中的ebuy.exe程序到你安装目录覆盖原文件,进行破解; 3. 请放心使用, 此程序绝…

Cisco Packet Tracer 8.0 发布,百度网盘下载

请访问原文链接&#xff1a;https://sysin.org/article/cisco-packet-tracer-8/&#xff0c;查看最新版。转载请保留出处。 Cisco Packet Tracer 是思科打造的一款强大的网络模拟工具&#xff0c;可为用户提供真实操作经验。您可以通过它练习使用路由器、交换机和其他各种设备…