0

我在 Zend Session 命名空间中存储了大量数据,我想知道在我的类中引用它的最有效方法是什么。

目前,我的构造函数使用“稍后”等行设置访问权限$this->_storage = new Zend_Session_Namespace('products'); ,当我需要访问命名空间中的数据时,我使用$this->_storage->varname = $var;$this->_storage->unsetAll();

这是否意味着每次我读取或写入会话时都会有磁盘活动?还是在请求开始时读取并在结束时写入?

如果在单个请求的持续时间内有多个磁盘访问,是否有简单的解决方法?

4

1 回答 1

1

关于会话使用的 php 手册页

会话遵循简单的工作流程。当会话启动时,PHP 将使用传递的 ID 检索现有会话(通常来自会话 cookie),或者如果没有传递会话,它将创建一个新会话。PHP 将在会话开始后使用任何会话数据填充 $_SESSION 超全局变量。当 PHP 关闭时,它会自动获取 $_SESSION 超全局变量的内容,将其序列化,并使用会话保存处理程序将其发送到存储中。

因此,要回答您的问题,这意味着在会话开始时有一次读取,在会话关闭时有一次写入,在这两者之间,$_SESSION超全局基本上保存在内存中。

于 2013-01-05T21:41:54.347 回答