CakePHP中文手册【翻译】-Cake 对话(Session)组件
Cake 对话(Session)组件
第1节
Cake Session存储选项
Cake预先设置3种方法来存储session数据:在Cake安装目录下作为临时文件存储,使用缺省的PHP机制,或者序列化到数据库中。缺省的,Cake使用PHP缺省的设置。为了覆写它来使用临时文件或数据库,编辑/app/config/core.php里的核心配置文件。将CAKE_SESSION_SAVE常数修改为'cake','php',或'database',这取决于你应用程序的需求。
core.php
Session配置
/** *
CakePHP includes 3 types of session saves *
database or file. Set this to your preferred method. * If
you want to use your own save handler place it in *
app/config/name.php DO NOT USE file or database as the name. *
and use just the name portion below. * *
Setting this to cake will save files to /cakedistro/tmp directory *
Setting it to php will use the php default save path *
Setting it to database will use the database * * */ define('CAKE_SESSION_SAVE', 'php') |
为了使用数据库session存储,你需要在数据库里创建一个表。此表的schema可以在/app/config/sql/sessions.sql中找到。
第2节
使用Cake Session组件
Cake Session组件用来和session信息进行交互。它不仅包含基本的Session读写操作,同时也包含使用session错误和接收信息(例如,"Your data has been saved")的特性。缺省的,Session组件在所有Cake Controller中可用。
下面是你经常使用的某些函数:
check
- string $name
检查看是否当前指定的$name键已经在session中设置。
- string $name
delete
- string $name
删除指定为$name的Session变量。
error
返回最后由Cake Session组件产生的错误。大多数在调试中使用。
flash
- string $key = 'flash'
返回最后setFlash()在Session里设置的消息。如果$key已经设置,返回的消息是存储在此键下的最后消息。
read
- string $name
返回指定为$name的session变量。
renew
创建新Session ID,删除老的那个,并将老的session数据传递给新的Session,这样来重新创建一个当前活动对话。
setFlash
- string $flashMessage
- string $layout = 'default'
- array $params
- string $key = 'flash'
将$flashMessage指定的消息写到session中(后面会通过falsh()获取数据).
如果$layout是设置为'default',消息会作为<div
class="message">'.$flashMessage.'</div>'来存储。如果$default设置为'',消息会作为它传递的那样存储。如果传递其他任意值,消息会在$layout指定的Cake view中存储。
params在本函数里供将来使用。返回以获取更多信息。
$key变量允许你在键下面存储flash消息。参看flash()获取更多关于获取一个基于一个键的flash消息的信息。.
valid
如果session有效,返回true。在read()前最常使用的来确保试图访问的session数据的操作实际上是有效的。
write
string $name
mixed $value
将$name和$value指定的变量写入活动的session中。