php – ZF2中的会话

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – ZF2中的会话脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
你能告诉我如何在Zf2中正确使用会话吗?到目前为止,我有这个代码
"session" =>
[
    "remember_me_seconds" => 2419200,"use_cookies" => true,"cookie_httponly" => true
]

这是我在stackoverflow上的一些帖子中复制的会话配置.现在我应该将此代码放入使用会话的每个模块中的module.config.PHP中还是应用程序模块中?

public function onBootstrap(EventInterface $Event)
{
    $Config = $Event->getApplication()->getServiceManager()->get('Configuration');
    $SessionConfig = new SessionConfig();
    $SessionConfig->setOptions($Config['session']);
    $SessionManager = new SessionManager($SessionConfig);
    $SessionManager->start();  
    Container::setDefaultManager($SessionManager);
}

与Module类的onBootstrap()方法相同的问题.这段代码应该进入每个模块的Module类,还是仅进入Application的Module类一次?

在这两种情况下,我都尝试了两种方法,我甚至尝试将这些代码同时放入两个模块中,但我唯一能够完成的是在控制器的构造函数中设置会话变量,然后在actions / methods中读取它们.我无法在一个操作/方法中设置会话变量,然后在另一个操作/方法中读取它.如果我删除我在控制器的构造函数中设置变量的行,我就不能再在会话中看到这些变量了.会话的行为就像每次请求页面时创建和删除的一样.

我错过了什么吗?请不要将我链接互联网上的任何资,我已经阅读了所有资源,但他们并没有真正的帮助.

您无需进行任何配置即可在Zend Framework 2中使用会话.当然,您可以更改设置,但如果您只想启动并运行会话,那么现在就不要担心.

我道歉,但我将无视你的最后一句话;大约一个月前,我写了一个article about this subject,目的是展示如何快速开始使用ZF2中的会话.它在搜索引擎中排名不佳,所以很有可能你没有读过它.

这是一个代码片段,展示了如何完成它.如果您对幕后的工作方式感兴趣,请参阅上面的链接.

namespace MyApplication\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\Session\Container; // We need this when using sessions

class UserController extends AbstractActionController {
    public function loginAction() {
        // Store username in session
        $userSession = new Container('user');
        $userSession->username = 'Andy0708';

        return $this->redirect()->toRoute('welcome');
    }

    public function welcomeAction() {
        // Retrieve username From session
        $userSession = new Container('user');
        $username = $userSession->username; // $username Now contains 'Andy0708'
    }
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – ZF2中的会话全部内容,希望文章能够帮你解决php – ZF2中的会话所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。