`
haohappy2
  • 浏览: 326061 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

kohana make session use memcache

 
阅读更多

Kohana中已经实现Session驱动cookie、native、database,我们再实现基于memcached的驱动:
配置文件session.php:

    <?php defined('SYSPATH') or die('No direct script access.');

    return array(
        'cache' => array(
            'name' => 'cookie_name',
            'lifetime' => 43200,
            'group' => 'memcache',
        ),
        'native' => array(
            'name' => 'session_name',
            'lifetime' => 43200,
        ),
        'cookie' => array(
            'name' => 'cookie_name',
            'encrypted' => TRUE,
            'lifetime' => 43200,
        ),
        'database' => array(
            'name' => 'cookie_name',
            'encrypted' => TRUE,
            'lifetime' => 43200,
            'group' => 'default',
            'table' => 'sessions',
            'columns' => array(
                'session_id'  => 'session_id',
                'last_active' => 'last_active',
                'contents'    => 'contents'
            ),
            'gc' => 500,
        ),
    );

新增文件
\classes\session\cache.php:

    <?php defined('SYSPATH') or die('No direct script access.');

    class Session_Cache extends Kohana_Session_Cache {}

    新增文件
    \classes\kohana\session\cache.php:
    <?php defined('SYSPATH') or die('No direct script access.');

    class Kohana_Session_Cache extends Session {

        // _memcached instance
        protected $_memcached;
        // The current session id
        protected $_session_id;
        // The old session id
        protected $_update_id;

        public function __construct(array $config = null, $id = NULL) {
            if (!isset($config['group'])) {
                $config['group'] = 'memcache';
            }

            $this->_db = Cache::instance($config['group']);

            parent::__construct($config, $id);
        }

        public function id() {
            return $this->_session_id;
        }

        protected function _read($id = NULL) {
            if (!is_null($id) OR $id = Cookie::get($this->_name)) {
                $ret = $this->_db->get($id);
                if (false !== $ret) {
                    $this->_session_id = $this->_update_id = $id;
                    return $ret;
                }
            }

            $this->_regenerate();

            return NULL;
        }

        protected function _regenerate() {
            do {
                $id = str_replace('.', '', uniqid(NULL, TRUE));

                $ret = $this->_db->get($id);
            } while (!is_null($ret));

            return $this->_session_id = $id;
        }

        protected function _write() {

            $this->_db->set($this->_session_id, $this->__toString(), $this->_lifetime);

            $this->_update_id = $this->_session_id;

            Cookie::set($this->_name, $this->_session_id, $this->_lifetime);

            return TRUE;
        }

        /**
         * @return  bool
         */
        protected function _restart() {
            $this->_regenerate();

            return TRUE;
        }

        protected function _destroy() {
            $ret = $this->_db->delete($this->_update_id);

            return $ret;
        }

    }

    // End Session_Cache

 

分享到:
评论

相关推荐

    kohana3.0 文档资料

    ### Kohana 3.0 文档资料相关知识点 #### 一、Kohana 3.0 概述 Kohana 是一个基于 PHP 的轻量级、模块化的应用框架,它旨在简化 Web 开发流程并提高开发效率。Kohana 3.0 版本在前代基础上进行了大量的优化与改进...

    Kohana v2.2 手册

    Kohana v2.2.chm文件是一个帮助文档,它包含了Kohana框架的所有详细信息,包括类库参考、API文档和示例代码,是学习和使用Kohana的宝贵资源。通过深入阅读和实践,开发者可以充分利用Kohana v2.2的强大功能,创建出...

    kohana 3.3.1.zip

    3、GET,POST,COOKIE,SESSION数组都能按照预期的工作。Kohana不限制你访问全局数据,但是提供了XSS过滤和检查所有的全局变量。 4、级联式资源,模块和继承。可以从你的系统,程序或者模块路径的任何地方加载控制...

    Kohana_v2.2

    Kohana起源于Codeigniter(CI),CI是EllisLab的开源作品。他们有很多相似的地方,但是Kohana的所有代码是重新编写或完全改写了。你可以访问Kohana的官方网站, 它的主要特点如下:高安全性很轻巧容易学习使用MVC模式...

    kohana一个php框架

    在Kohana_v2.3版本中,我们可以看到一些关键特性和知识点: 1. **MVC架构**:Kohana的核心是MVC设计模式,其中Model负责数据处理,View用于展示用户界面,Controller作为两者之间的桥梁,处理请求并调用Model和View...

    Kohana 3.0 Beginner's Guide

    ### Kohana 3.0 Beginner's Guide #### 一、简介 《Kohana 3.0 Beginner's Guide》是一本由Jason D. Straughan撰写的书籍,旨在帮助初学者掌握Kohana框架的基础知识并能够利用它来开发专业级别的Web应用程序。本书...

    kohana3.3.1框架教程 -

    在 Kohana 中,全局数据如 GET、POST、COOKIE 和 SESSION 可以方便地访问,同时框架会对这些数据进行 XSS(跨站脚本攻击)过滤,以增强安全性。Kohana 提供级联式的资源管理,允许从不同位置加载控制器、模型、类库...

    kohana3操作手册

    kohana3 用户手册kohana3 用户手册kohana3 用户手册

    PHP框架Kohana v3.3.1.zip

    3、GET,POST,COOKIE,SESSION数组都能按照预期的工作。Kohana不限制你访问全局数据,但是提供了XSS过滤和检查所有的全局变量。 4、级联式资源,模块和继承。可以从你的系统,程序或者模块路径的任何地方加载控制...

    kohana3.0教程-高清英文版

    ### Kohana 3.0 教程 - 高清英文版 #### 一、Kohana 3.0 简介 Kohana 是一个基于 PHP 的轻量级 Web 开发框架,以其高性能、灵活性和易用性著称。Kohana 3.0 版本是该框架的一个重要里程碑,它引入了许多新特性,...

    kohana下分页模块

    在Kohana框架中,分页是处理大量数据时非常常见且重要的功能,它能帮助用户以更易读的方式浏览长列表,而无需一次性加载所有内容。本篇将详细介绍Kohana下的分页模块及其使用方法。 分页模块在Kohana中的实现通常...

    Kohana中文手册

    Kohana 提供了一种简单而强大的方式来构建高效、安全的应用程序。本手册是针对 Kohana Docs v2.3.4 版本的中文指南,旨在帮助开发者更深入地理解和使用这一框架。 Kohana 框架的核心特性包括: 1. **模块化**:...

    kohana-3.2.2

    Kohana 遵循 Model-View-Controller (MVC) 设计模式,强调代码的清晰结构和可维护性,同时提供了强大的数据库抽象层和安全特性。 一、Kohana 3.2.2 的核心特性: 1. **模块化设计**:Kohana 使用模块化设计,每个...

    基于kohana实现的基础后台管理系统

    Kohana提供了Session和Cookie工具,可以实现用户登录状态的跟踪和管理。同时,可以使用Acl(访问控制列表)进行更细粒度的权限分配,确保不同角色的用户只能访问其被授权的功能。 JavaScript开发在后台管理系统中也...

    Kohana_3_中文文档手册

    Kohana 3 是其第三个主要版本,引入了许多改进和新特性,提高了开发效率和代码质量。 在 "Kohana_3_中文文档手册" 中,你将找到关于以下关键知识点的详细解释: 1. **安装与配置**:手册会详细介绍如何下载Kohana ...

    kohana3手册

    《Kohana3手册》是针对Kohana框架的中文翻译版,由热心的作者根据维基百科的原始资料精心翻译而成。这份手册详细介绍了Kohana3的各个方面,弥补了国内相关资源的不足,对于想要深入理解和使用Kohana3的开发者来说,...

    kohana开发文档

    ### Kohana开发文档知识点详解 #### 一、Kohana安装与配置 **1.1 下载最新版本** - **步骤说明**:首先需要访问Kohana官网或者其他可靠的资源网站,下载Kohana框架的最新版本。 **1.2 解压文件到你的Web目录** ...

    PHP框架Kohana v3.3.1

    `kohana-3.3.1`这个压缩包文件名暗示了它是Kohana的3.3.1版本。通常,这个文件夹会包含框架的源代码,如核心类库、配置文件、模块、库和其他必要文件。`说明.htm`可能是关于如何安装和使用Kohana的简短指南。 ### ...

    KOHANA 2.4 版本

    在Kohana 2.4 版本中,它延续了以往版本的优势,并在此基础上进行了诸多改进和增强,使得开发过程更加顺畅。下面我们将深入探讨Kohana 2.4版本中的关键知识点。 1. MVC架构:Kohana 遵循模型-视图-控制器(MVC)...

Global site tag (gtag.js) - Google Analytics