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
相关推荐
### Kohana 3.0 文档资料相关知识点 #### 一、Kohana 3.0 概述 Kohana 是一个基于 PHP 的轻量级、模块化的应用框架,它旨在简化 Web 开发流程并提高开发效率。Kohana 3.0 版本在前代基础上进行了大量的优化与改进...
Kohana v2.2.chm文件是一个帮助文档,它包含了Kohana框架的所有详细信息,包括类库参考、API文档和示例代码,是学习和使用Kohana的宝贵资源。通过深入阅读和实践,开发者可以充分利用Kohana v2.2的强大功能,创建出...
3、GET,POST,COOKIE,SESSION数组都能按照预期的工作。Kohana不限制你访问全局数据,但是提供了XSS过滤和检查所有的全局变量。 4、级联式资源,模块和继承。可以从你的系统,程序或者模块路径的任何地方加载控制...
Kohana起源于Codeigniter(CI),CI是EllisLab的开源作品。他们有很多相似的地方,但是Kohana的所有代码是重新编写或完全改写了。你可以访问Kohana的官方网站, 它的主要特点如下:高安全性很轻巧容易学习使用MVC模式...
在Kohana_v2.3版本中,我们可以看到一些关键特性和知识点: 1. **MVC架构**:Kohana的核心是MVC设计模式,其中Model负责数据处理,View用于展示用户界面,Controller作为两者之间的桥梁,处理请求并调用Model和View...
### Kohana 3.0 Beginner's Guide #### 一、简介 《Kohana 3.0 Beginner's Guide》是一本由Jason D. Straughan撰写的书籍,旨在帮助初学者掌握Kohana框架的基础知识并能够利用它来开发专业级别的Web应用程序。本书...
在 Kohana 中,全局数据如 GET、POST、COOKIE 和 SESSION 可以方便地访问,同时框架会对这些数据进行 XSS(跨站脚本攻击)过滤,以增强安全性。Kohana 提供级联式的资源管理,允许从不同位置加载控制器、模型、类库...
kohana3 用户手册kohana3 用户手册kohana3 用户手册
3、GET,POST,COOKIE,SESSION数组都能按照预期的工作。Kohana不限制你访问全局数据,但是提供了XSS过滤和检查所有的全局变量。 4、级联式资源,模块和继承。可以从你的系统,程序或者模块路径的任何地方加载控制...
### Kohana 3.0 教程 - 高清英文版 #### 一、Kohana 3.0 简介 Kohana 是一个基于 PHP 的轻量级 Web 开发框架,以其高性能、灵活性和易用性著称。Kohana 3.0 版本是该框架的一个重要里程碑,它引入了许多新特性,...
在Kohana框架中,分页是处理大量数据时非常常见且重要的功能,它能帮助用户以更易读的方式浏览长列表,而无需一次性加载所有内容。本篇将详细介绍Kohana下的分页模块及其使用方法。 分页模块在Kohana中的实现通常...
Kohana 提供了一种简单而强大的方式来构建高效、安全的应用程序。本手册是针对 Kohana Docs v2.3.4 版本的中文指南,旨在帮助开发者更深入地理解和使用这一框架。 Kohana 框架的核心特性包括: 1. **模块化**:...
Kohana 遵循 Model-View-Controller (MVC) 设计模式,强调代码的清晰结构和可维护性,同时提供了强大的数据库抽象层和安全特性。 一、Kohana 3.2.2 的核心特性: 1. **模块化设计**:Kohana 使用模块化设计,每个...
Kohana提供了Session和Cookie工具,可以实现用户登录状态的跟踪和管理。同时,可以使用Acl(访问控制列表)进行更细粒度的权限分配,确保不同角色的用户只能访问其被授权的功能。 JavaScript开发在后台管理系统中也...
Kohana 3 是其第三个主要版本,引入了许多改进和新特性,提高了开发效率和代码质量。 在 "Kohana_3_中文文档手册" 中,你将找到关于以下关键知识点的详细解释: 1. **安装与配置**:手册会详细介绍如何下载Kohana ...
《Kohana3手册》是针对Kohana框架的中文翻译版,由热心的作者根据维基百科的原始资料精心翻译而成。这份手册详细介绍了Kohana3的各个方面,弥补了国内相关资源的不足,对于想要深入理解和使用Kohana3的开发者来说,...
### Kohana开发文档知识点详解 #### 一、Kohana安装与配置 **1.1 下载最新版本** - **步骤说明**:首先需要访问Kohana官网或者其他可靠的资源网站,下载Kohana框架的最新版本。 **1.2 解压文件到你的Web目录** ...
`kohana-3.3.1`这个压缩包文件名暗示了它是Kohana的3.3.1版本。通常,这个文件夹会包含框架的源代码,如核心类库、配置文件、模块、库和其他必要文件。`说明.htm`可能是关于如何安装和使用Kohana的简短指南。 ### ...
在Kohana 2.4 版本中,它延续了以往版本的优势,并在此基础上进行了诸多改进和增强,使得开发过程更加顺畅。下面我们将深入探讨Kohana 2.4版本中的关键知识点。 1. MVC架构:Kohana 遵循模型-视图-控制器(MVC)...