需要Zend_Session_Namespace的Yii2等效

问题描述 投票:1回答:1

我目前正在迁移一个古老的Zend 1.1的网站,需要Zend_Session_Namespace的用途的替代品。

对于Yii2是否存在一个?或者替代地有一个插件或东西添加此功能?

-edit:具体地设置期满超时和跳限制等的Zend具有的能力。

谢谢。

zend-framework yii2
1个回答
1
投票

UPDATE

您在编辑添加的信息从来没有前面提到的,使你的问题太宽泛您可以创建为一个单独的问题。

默认情况下,会话数据被存储在文件中。实现从打开会话它关闭或者点按session_write_close()(Yii中这是可以做到的Yii::$app->session->close()),或在请求端锁定的文件。虽然会议文件被锁定,其正试图使用​​同一个会话的所有其他请求被阻塞即等待释放会话文件的初始请求。这个工作可以用于开发或小项目。但是,当涉及到处理大量并发请求,最好是使用更复杂的存储,比如数据库。


Zend_Session_Namespace实例为在Zend框架操作会话数据提供主要API。命名空间常用于隔离所有的会话数据,如果你的脚本转换为Yii2框架,您可能需要考虑https://www.yiiframework.com/doc/api/2.0/yii-web-session

一个简单的例子来比较两者通过实例的功能是

Zend Framework 1.1 Counting Page Views

$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;

Yii2 Framework Counting Page Views

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"; 
}
© www.soinside.com 2019 - 2024. All rights reserved.