用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2344|回复: 0
收起左侧

[辅助方法 Helper] 更新Session到一个方法

[复制链接]
发表于 2014-8-11 17:14:05 | 显示全部楼层 |阅读模式
第一次在论坛发贴。。欢迎拍砖
最近在写后台用到session判断登陆状态,但是感觉session里面方法太多。取值存值不太方便,所以写了一个和thinkphp类似的方法
PHP复制代码
 
S方法使用方法
// 使用data标识缓存$Data数据
S('data',$Data);    //存数组用S($array)   $array=array('abc'=>'1234','bcd'=>'2345')
// 缓存$Data数据3600秒
S('data',$Data,3600);
// 获取缓存数据
$Data = S('data');
// 删除缓存数据S('data',NULL);
 
F方法和S类似。大家应该可以看明白。
 
/**
* 功能:Session缓存重写
* @param $name        如果$name是数组$value无效果 array('a'=>'123','b'=>'234');
* @param $value     字符串
* @param $expire    过期时间
* @return
* @author xiaole
* @time 2014-8-8
*/

function S($name,$value='',$expire=null){
    if(!is_null($expire)){$session_config=array('sess_expiration'=>$expire);} else {$session_config=array();};
    instance()->load->library('session',$session_config);
    if(is_array($name)){
        instance()->session->set_userdata($name);return;
    }else{
        if($value!==''){
            if (is_null($value)) {
                instance()->session->unset_userdata($name);return;
            }else{
                instance()->session->set_userdata($name, $value);return;
            }
        }else{
            return instance()->session->userdata($name);
        }
    }
}
 
/**
* 功能:Session 快速缓存重写 一次存取,读取后失效
* @param $name 可为数组或者key 如果是数组不能以flash_开头
* @param sting $value 如果$key是字符串则$value有效
* @param boolen $retain 取出数据时是否需要继续保留这个session
* @return
* @author xiaole
* @time 2014-8-8
*/

function F($name,$value='',$retain=false){
    instance()->load->library('session');
    if(is_array($name)){
        instance()->session->set_flashdata($name);return;
    }else{
        if($value !==''){
            instance()->session->set_flashdata($name,$value);return;
        }else{
            if($retain){
                return instance()->session->keep_flashdata($name);
            }else{
                return instance()->session->flashdata($name);
            }
        }
    }
}
 
复制代码


评分

参与人数 1威望 +5 收起 理由
Hex + 5 很给力!

查看全部评分

本版积分规则