我当前正在迁移旧的Zend 1.1网站,并且需要替换Zend_Session_Namespace的使用。
Yii2是否存在一个?还是有插件或添加此功能的东西?
-编辑: 特别是可以像Zend一样设置到期超时和跳数限制。
谢谢。
答案 0 :(得分:1)
您之前从未提及过在编辑中添加的信息,这使您的问题过于广泛,您可能为此创建一个单独的问题。
默认情况下,会话数据存储在文件中。该实现将文件锁定为无法打开会话,直到被session_write_close()
(在Yii中可以通过Yii::$app->session->close()
完成)或在请求结束时将其关闭。当会话文件被锁定时,所有试图使用同一会话的其他请求都将被阻止,即等待初始请求释放会话文件。这可以用于开发人员或小型项目。但是,在处理大量并发请求时,最好使用更复杂的存储,例如数据库。
Zend_Session_Namespace
实例提供主要的API
来操纵Zend Framework中的会话数据。命名空间用于分隔所有会话数据,如果要将脚本转换为Yii2框架,则可能需要查看https://www.yiiframework.com/doc/api/2.0/yii-web-session
通过示例比较这两个功能的简单示例是
$defaultNamespace = new Zend_Session_Namespace('Default');
if (isset($defaultNamespace->numberOfPageRequests)) {
// this will increment for each page load.
$defaultNamespace->numberOfPageRequests++;
} else {
$defaultNamespace->numberOfPageRequests = 1; // first time
}
echo "Page requests this session: ",
$defaultNamespace->numberOfPageRequests;
public function actionIndex()
{
$session = new \yii\web\Session();
$session->open();
$visits = $session->get('visits', 0);
$visits = $visits+1;
$session->set('visits', $visits);
return "Total visits $visits";
}