DRUPAL的SESSION读取,写入机制是怎样的?
最近碰到个关于session的问题: 首先,我们都知道drupal的session是记录在表里的。他在boostrap文件里,使用session_set_save_handler方法重新定义过session的读取,写入。 在session.inc文件里放着重新定义的几个sess方法,比如sess_read,sess_write。 然而$_SESSION是数组的形式记录的,而sess_read和sess_write里读取和写入的,都是序列化后的产物(而且这个序列化和普通的序列化还不一样?!)。那么,drupal是在什么时候去做序列化的呢?sess_write中的传参是key和value,key是sess id,value已经是序列化后的string了。什么时候把$_SESSION给做成的这个特殊string呢? |
|
yoyo198624Lv 5
|
3 个回答
Drupal 是采用 PHP 内置的会话机制,但是它重载了 PHP 内置的会话处理器 (PHP 内建处理是把会话保存为文件方式的),把会话数据保存在数据库内。
可以使用session_set_save_handler函数重载SESSION存储方式存储于MYSQL,样例如下
孤魂Lv 10
thks 孤魂,所以你的意思是sess_write和sess_read里这种string的方法不是drupal加工后的产物,而是PHP自身就是如此的吗?
yoyo198624Lv 5
是的,是php的东西
孤魂Lv 10