Zend的Registry机制
项目过程中有很多全局变量, 需要全局存储,是否是使用全局变量来进行存储?那就弱爆了。Zend使用Registry机制(注册表)存储对象和值,是一个存储对象和值的容器。
Zend_Registry这个类就是做这个目的
Zend_Registry::set(config, $config);
Zend_Registry::get(config);
这两个函数是最常用的两个函数。我们来看一下这个类
class Zend_Registry extends ArrayObject
这个类继承自ArrayObject
ArrayObject implements IteratorAggregate , Traversable , ArrayAccess , Serializable , Countable
ArrayObject是一个对象集合,相当于其他语言的泛型集合的概念。
重点了解下void ArrayObject::offsetSet ( mixed index,mixedindex,mixednewval ), 这个函数就是hashtable中的设置key,value,只是key,value可以是任何类型的。
好了,回到Zend_Registry, 看看set做了些什么事情
set函数
一个是实例化Register,另一个是调用offsetSet方法,将index和value设置进去。
offset方法很好理解,但是为什么要使用getInstance方法呢?
这里建议大家好好看看,这个是结合类静态方法的单例模式。
我们一般的单例模式写成:
这样在调用之前就需要实例化一个类,虽然这个实例化实际上是单例,但感觉还是不舒服
这边的register就做到了直接使用静态方法调用
A::setVal();
大致的代码思路我写了个demo
Swoole v4.5.7 版本发布,新增--enable-swoole- json编译选项 在上个版本中添加的 swoole_substr_json_decode 函数,由于少部分用户的扩展依赖顺序问题,所以添加了一个编译选项--enable-swoole-json,用于启用 swoole_substr_json_decode 支持
相关文章
- 代糖警告!「无糖0卡」照样能引起高血糖,影响人体代谢机制 | Cell
- 介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块?
- rabbitmq——索引文件的读写机制
- Redis Cluster集群数据分片机制原理
- 机制Java驱动的Redis过期机制研究(redisjava过期)
- Linux操作系统下的线程机制分析(linux有线程吗)
- 机制使用Redis与Java实现高性能的过期机制(redisjava过期)
- 机制基于Redis与Java实现强制数据过期机制(redisjava过期)
- 机制Redis中Java实现的过期机制(redisjava过期)
- 处理Java实现Redis中键值对自动过期机制(redisjava过期)
- 机制Redis Java过期机制及其实现探究(redisjava过期)
- 深入了解SQL注入绕过waf和过滤机制
- Linux CRC:数据传输保障的重要机制(linuxcrc)
- Oracle数据库的先决条件验证机制(oracle先决条件检查)
- Redis集群与哨兵机制强大的高可用解决方案(redis集群和哨兵机制)
- Redis锁实现重试模式的优势(redis锁重试机制)
- Redis过期机制明晃晃的业务前景(redis过期对业务影响)
- Redis结合过期失效机制,实现可靠性存储(redis过期失效机制)