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中设置。

del

  • string $name

delete

  • string $name

删除指定为$nameSession变量。

error

返回最后由Cake Session组件产生的错误。大多数在调试中使用。

flash

  • string $key = 'flash'

返回最后setFlash()在Session里设置的消息。如果$key已经设置,返回的消息是存储在此键下的最后消息。

read

  • string $name

返回指定为$namesession变量。

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中。

Last Updated:2006年12月03日
posted @ 2006-11-30 09:51  张太国  阅读(3144)  评论(2编辑  收藏  举报