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   1450811640  阅读(848)  评论(0编辑  收藏  举报

编辑推荐:
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示