特罗凯,中国地图矢量图,苹果imei查询
项目过程中有很多全局变量, 需要全局存储,是否是使用全局变量来进行存储?那就弱爆了。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 , mixed $newval ), 这个函数就是hashtable中的设置key,value,只是key,value可以是任何类型的。
好了,回到zend_registry, 看看set做了些什么事情
set函数
offset方法很好理解,但是为什么要使用getinstance方法呢?
这里建议大家好好看看,这个是结合类静态方法的单例模式。
我们一般的单例模式写成:
这边的register就做到了直接使用静态方法调用
a::setval();
大致的代码思路我写了个demo
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
网友评论