
项目中经常使用到Cookie,本文分享一下Yii1封装的Cookie类,方便程序中调用
直接上代码
// +----------------------------------------------------------------------
// | Yii1.1 Cookie操作类
// +----------------------------------------------------------------------
// | Author: Mr.Yong <m.yong@foxmail.com>
// +----------------------------------------------------------------------
// | Create Date: 2019.02.23
// +----------------------------------------------------------------------
final class Cookie {
/**
* [get 获取 Cookie]
* @Author My
* @DateTime 2019-02-23T15:58:17+0800
* @param [type] $name [名称]
* @return [type] [description]
*/
static public function get($name) {
if (!(is_string($name) && $name)) {
return false;
}
$cookie = Yii::app()->getRequest()->getCookies()->itemAt($name);
if (is_null($cookie)) {
return false;
} else {
return $cookie->value;
}
}
/**
* [set 设置 Cookie]
* @Author My
* @DateTime 2019-02-23T15:57:40+0800
* @param [type] $name [名称]
* @param string $value [值]
* @param integer $expire [时间,单位:秒]
* @param array $options [选项,具体请参考 CHttpCookie]
*/
static public function set($name, $value = '', $expire = 0, $options = []) {
if (!is_string($name) || !is_int($expire) || !is_array($options)) {
return false;
}
$cookie = new CHttpCookie($name, $value);
if ($expire) {
$cookie->expire = time() + $expire;
}
if (!empty($options)) {
foreach ($options as $optionIndex => $optionVal) {
$cookie->$optionIndex = $optionVal;
}
}
Yii::app()->getRequest()->cookies[$name] = $cookie;
return true;
}
/**
* [remove 删除指定Cookie]
* @Author My
* @DateTime 2019-02-23T15:58:46+0800
* @param [type] $name [名称]
* @return [type] [description]
*/
static public function remove($name) {
if (!(is_string($name) && $name) || !isset(Yii::app()->getRequest()->cookies[$name])) {
return false;
}
self::set($name, '', -1);
return true;
}
/**
* [clear 清除全部 Cookie]
* @Author My
* @DateTime 2019-02-23T15:58:34+0800
* @return [type] [description]
*/
static public function clear() {
Yii::app()->getRequest()->getCookies()->clear();
}
}类文件直接放在
/protected/components调用方法:
设置cookie
Cookie::set('name', '老马', 60);获取cookie
Cookie::get('name');删除指定cookie
Cookie::remove('name');清除所有cookie
Cookie::clear();评论
暂无评论
评论(0)