dy7338 发表于 2014-8-11 17:14:05

更新Session到一个方法

第一次在论坛发贴。。欢迎拍砖
最近在写后台用到session判断登陆状态,但是感觉session里面方法太多。取值存值不太方便,所以写了一个和thinkphp类似的方法

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]
查看完整版本: 更新Session到一个方法