ThinkPHP框架自定义SESSION处理例子(1/3)

使用ThinkPHP的同志应该都知道,在ThinkPHP中,可以使用数据库来处理SESSION。具体的实现过程如下:

ThinkPHP自定义SESSION驱动之数据库存储

在ThinkPHP中,SESSION相关的数据库驱动已经给了,如果你下载的是ThinkPHP完整包的话,你应该在ThinkPHP目录下看到Extend目录,在此目录下,你应该会看到Driver/Session/SessionDb.class.php文件。这个就是ThinkPHP中数据库处理SESSION的驱动。

要在ThinkPHP中启用数据库处理SESSION,你应该在配置文件中写入如下配置:

//自定义SESSION处理
'SESSION_TYPE' => 'Db',
当然,你必须写入数据库的相关配置。

启用数据库存储SESSION后,就应该创建SESSION存储的表,创建的SQL语句在SessionDb.class.php文件的注释中,你只需复制后,稍作修整,执行一下就可以了,SQL语句如下(请自行更改表前缀):

 代码如下 复制代码
CREATE TABLE ly_session (
    session_id varchar(255) NOT NULL,
    session_expire int(11) NOT NULL,
    session_data blob,
    UNIQUE KEY `session_id` (`session_id`)
);

定义SESSION的数据库驱动也就如此简单。

ThinkPHP自定义SESSION驱动之Redis

在书写Redis驱动之前,我们有必要大概的了解一下,自定义数据库驱动是如果实现的。

ThinkPHP中自定义SESSION处理的实现原理

打开ThinkPHP目录下的Common/function.php文件,查找session函数。你将看到如下代码:

 代码如下 复制代码
/**
 * session管理函数
 * @param string|array $name session名称 如果为数组则表示进行session设置
 * @param mixed $value session值
 * @return mixed
 */
function session($name,$value='') {
    $prefix   =  C('SESSION_PREFIX');
    if(is_array($name)) { // session初始化 在session_start 之前调用
 
        /** 些处省略2000字 **/
 
        if(C('SESSION_TYPE')) { // 读取session驱动
            $class      = 'Session'. ucwords(strtolower(C('SESSION_TYPE')));
            // 检查驱动类
            if(require_cache(EXTEND_PATH.'Driver/Session/'.$class.'.class.php')) {
                $hander = new $class();
                $hander->execute();
            }else {
                // 类没有定义
                throw_exception(L('_CLASS_NOT_EXIST_').': ' . $class);
            }
        }
        // 启动session
        if(C('SESSION_AUTO_START'))  session_start();
    }elseif('' === $value){
                
        }else{
                    
        }
    }elseif(is_null($value)){ // 删除session
       
    }else{ // 设置session
       
    }
}

从第13行代码开始看起:如果定义了"SESSION_TYPE"配置项(假设配置成了"Redis")的话,就会首先把这个配置项转化成小写,再让首字母转成大写后,再与Session连接,接着是载入ThinkPHP目录下的Extend/Driver/Session/SessionRedis.class.php文件;载入成功之后,便是实例化,然后调用execute方法。

首页 1 2 3 末页

时间: 2024-08-02 18:28:25

ThinkPHP框架自定义SESSION处理例子(1/3)的相关文章

ThinkPHP框架实现session跨域问题的解决方法_php实例

ThinkPHP的session跨域问题很多开发者都遇到过! 其实不管是ThinkPHP还是php本身,在解决session跨域问题的时候都需要设置session.cookie_domain. 在ThinkPHP里,需要修改配置文件conf/config.php 在第一行加上: ini_set('session.cookie_domain', ".domain.com");//跨域访问Session 经过总结,针对session跨域这一问题的解决方法主要有以下几种: 第一种情况:如果你

ThinkPHP自定义SESSION的实现示例

ThinkPHP自定义SESSION驱动之数据库存储 在ThinkPHP中,SESSION相关的数据库驱动已经给了,如果你下载的是ThinkPHP完整包的话,你应该在ThinkPHP目录下看到Extend目录,在此目录下,你应该会看到Driver/Session/SessionDb.class.php文件.这个就是ThinkPHP中数据库处理SESSION的驱动. 要在ThinkPHP中启用数据库处理SESSION,你应该在配置文件中写入如下配置: //自定义SESSION处理 'SESSION

thinkphp 模板系统-thinkphp框架+模板 html中的{abc:$Think.session.uname}定义是什么意思?

问题描述 thinkphp框架+模板 html中的{abc:$Think.session.uname}定义是什么意思? 在html模板的html中有以下定义: {abc:$Think.session.uname} {}大括号中的abc能修改吗?在哪里定义的?

ThinkPHP框架配置自定义的模板变量(十)

原文:ThinkPHP框架配置自定义的模板变量(十) 模板替换(手册有详细介绍对应的目录) __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/__ROOT__: 会替换成当前网站的地址(不含域名) __APP__: 会替换成当前项目的URL地址 (不含域名)__GROUP__:会替换成当前分组的URL地址 (不含域名)__URL__: 会替换成当前模块的URL地址(不含域名)__ACTION__:会替换成当前操作的URL地址 (不含域名)__SELF__: 会替换成当前

ThinkPHP框架调用mysql数据库数据例子

1.首先简述一下什么是ThinkPHP   ThinkPHP是,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性.并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性.扩展性和性能方面不断优化和改进. ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,诞生于20

ThinkPHP框架入门知识

 ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁 实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性.并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性.扩展性和性能方 面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发.

PHP框架 ThinkPHP框架入门知识

ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁 实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性.并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性.扩展性和性能方 面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发.

云服务器 ECS 建站教程:快速搭建 ThinkPHP 框架

快速搭建 ThinkPHP 框架 ThinkPHP 是一款免费开源的,快速.简单的面向对象的轻量级 PHP 开发框架,遵循 Apache2 开源协议发布,是为了敏捷 Web 应用开发和简化企业应用开发而诞生的. 适用对象 本文档介绍如何使用云市场的 ThinkPHP 框架(含智慧云虚机面板) 快速搭建 ThinkPHP 框架.适用于正在学习 PHP 或者已经基于 ThinkPHP 框架研发的开发者. 基本流程 购买 ThinkPHP 框架镜像. 上传您的程序. 切换 PHP 脚本适应您的程序.

快速搭建ThinkPHP框架教程

本文教你如何快速搭建ThinkPHP框架.ThinkPHP 是一款免费开源的,快速.简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷 Web 应用开发和简化企业应用开发而诞生的.ThinkPHP 是国内最领先和最具影响力的 Web 应用开发框架,是开发者学习 PHP 及研发网站的不错选择. ##适用对象 本文档介绍如何使用云市场的 **ThinkPHP 框架(含智慧云虚机面板)** 快速搭建 ThinkPHP 框架.适用于正在学习 PHP 或者已经基于 Think