Yaf_Registry使用
一、定义
在yaf的手册中有关Register类是这样定义的:
Yaf_Registry, 对象注册表(或称对象仓库)是一个用于在整个应用空间(application space)内存储对象和值的容器. 通过把对象存储在其中,我们可以在整个项目的任何地方使用同一个对象.这种机制相当于一种全局存储. 我们可以通过Yaf_Registry类的静态方法来使用对象注册表. 另外,由于该类是一个数组对象,你可以使用数组形式来访问其中的类方法。
其中Register类中包含的方法有:
Yaf_Registry { /* 属性 */ static $_instance ; protected $_entries ; /* 方法 */ __construct ( void ) public static del ( string $name ) : void public static get ( string $name ) : mixed public static has ( string $name ) : bool public static set ( string $name , string $value ) : bool }
在yaf的官方手册定义中,"整个应用空间"的概念是比较难理解的,我现目前就理解为是一次完成的php请求,在一次php请求中,可以使用Registry类来存储全局变量,,其中也提供了增、删差的方法。
二、应用场景
1、缓存用户登录信息
可以使用Registry缓存用户登录信息,其中包括功能权限、数据权限等信息
2、缓存重复使用的全局信息(例如需要频繁调用外部接口获取数据的情况),如果已缓存信息,则使用缓存信息,如果未缓存信息,则重新获取,可以有效的提高效率,降低接口开销。
public static function getConfigInfo($arrPayLoad) { $data = \Yaf\Registry::get(json_encode($arrPayLoad)); if (empty($data)) { $data = (new ExternalApi())->getAllConfList($arrPayLoad); \Yaf\Registry::set(json_encode($arrPayLoad), $data); } return $data; }
posted on 2020-05-28 22:21 1450811640 阅读(848) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~