干货分享!!!Yii1封装Cookie操作

项目中经常使用到Cookie,本文分享一下Yii1封装的Cookie类

干货分享!!!Yii1封装Cookie操作

项目中经常使用到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();
上一篇:Python分析一波微信好友 下一篇:公司内部项目管理系统

评论

评论(0)

暂无评论