首页 » 资源分享 » PHP » 正文

yaf系列学习之三:Yaf类库Library的使用之redis



在项目中,往往需要封装一些,如redis和db,不同的产品需要用不同的库等等等,这就涉及到封装。
那么,我们一般的习惯是根据“命名空间\文件路径”来实例化类或者引入,比如:
$object = new Path\showPath();
这就代表着实例化了 Path 下的 showPath 类文件,当然在Yaf中也可以这样。
这一篇我们先以redis为例。
比如,我们想把Redis类文件放在Cache下面,需要这么做
首先,我们在 library 下面新建文件夹Cache然后创建Redis.php文件,
要注意,在Redis.php中要写上对应的命名空间:namespace Cache;
<?php
namespace Cache;
class Redis {
...........
}?
?>
然后,实例化的时候为:
$object = new \Cache\Redis();
如果没有redis的库文件,可以使用thinkphp的,下面介绍一下使用thinkphp封装好的redis类,并使用
1、复制thinkphp的缓存库simplewind\thinkphp\library\think\cache\Driver.php和simplewind\thinkphp\library\think\cache\driver\redis.php,复制到我们存放redis类文件的application\library\Cache中。
2、打开Driver.php和redis.php,在其顶部加入命名空间的代码:namespace Cache;
3、代开配置文件applica.ini,添加redis的配置信息:
application.redis.host = '127.0.0.1'
application.redis.port = '6379'
4、打开application\Bootstrap.php,加入载入reids的相关代码
// 载入redis
public function _initRedis()
{
$arrConfig = Yaf_Registry::get('config');
$option = ['host'=>$arrConfig->application->redis->host, 'port'=>$arrConfig->application->redis->port];
$redis = new \Cache\Redis($option);
Yaf_Registry::set('redis', $redis);
}
5、在控制器使用redis,示例
$redis = Yaf_Registry::get('redis');
$redis->set('test1',time());
$redis->get('test1');
6、完成