默认的session存储方法为文件形式,在MAC里面的路径是/private/var/tmp。

        若要用数据库存储session的话,需在Conf/config.php里面加入'SESSION_TYPE' => 'Db',,这是由于ThinkPHP/Common/function里面有个函数function session($name,$value='')是这样写的:

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_TYPE不为空,即为真的时候,就会执行上面的代码,$class就会赋值为'SessionDb',就会引入执行ThinkPHP/Extend/Driver/Session/SessionDb.class.php这个文件,然后执行此类的execute()函数。

        要用数据库存储,当然要那一个数据库表了,这个表在SessionDb.class.php的开始部分有给出,SQL语句是这样:

 CREATE TABLE think_session (
session_id varchar(255) NOT NULL,
session_expire int(11) NOT NULL,
session_data blob,
UNIQUE KEY `session_id` (`session_id`)
);

        此时在Action里面的显示视图的函数可写echo session_id();来输出保存的session,在数据表think_session用select显示内容,也可看到,不过data是空的。再在前面加上一句$_SESSION['username']='admin';,刷新再查数据表即可看到data有内容了。

        如果用Redis保存的话,则config.php改为'SESSION_TYPE' => 'Redis','REDIS_HOST'=>'127.0.0.1','REDIS_PORT'=>6379,,然后在Session下新建SessionRedis.class.php,类似地,里面有Class SessionRedis,有函数execute,有open、cloas、read、write、destroy、gc等函数。

        分页类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php里,要用的时候,用一句import('ORG/Util/Page');就引入了。下面是代码,有注释:


	public function index(){
		import('ORG.Util.Page');//引入Page类
		$count=M('wish') -> count();//求出wish的条数
		$page= new Page($count,6);//实例化Page,第一个参数是总条件,第2个为每页显示多少条
		$limit= $page->firstRow . ',' . $page->listRows;//显示第几页的limit
		$wish = M('wish') -> order('time desc') -> limit($limit) -> select();//找出要显示的wish
		$this->wish = $wish;//将wish赋值分配过去,让Tpl显示视图可以直接用
		$this->page = $page->show();//分配过去
		//var_dump($wish);die;
		$this-> display();
	}
        视图HTML显示页码时,直接用{$page}就可以了。原代码如下:



	<table class='table'>
		<tr>
			<th>ID</th>
			<th>发布者</th>
			<th>内容</th>
			<th>发布时间</th>
			<th>操作</th>
		</tr>
		<foreach name='wish' item='v'>
			<tr>
				<td><{$v.id}></td>
				<td><{$v.username}></td>
				<td><{$v.content|replace_phiz=###}></td>
				<td><{$v.time|date='Y-m-d h:m:s',###}></td>
				<td><a href=''>删除</a></td>
			</tr>
		</foreach>
		<tr>
			<td colspan=5 align='center'><{$page}></td>
		</tr>
	</table>