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中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?