php – ZF2中的会话

前端之家收集整理的这篇文章主要介绍了php – ZF2中的会话前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你能告诉我如何在ZF2中正确使用会话吗?到目前为止,我有这个代码
  1. "session" =>
  2. [
  3. "remember_me_seconds" => 2419200,"use_cookies" => true,"cookie_httponly" => true
  4. ]

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

  1. public function onBootstrap(EventInterface $Event)
  2. {
  3. $Config = $Event->getApplication()->getServiceManager()->get('Configuration');
  4. $SessionConfig = new SessionConfig();
  5. $SessionConfig->setOptions($Config['session']);
  6. $SessionManager = new SessionManager($SessionConfig);
  7. $SessionManager->start();
  8. Container::setDefaultManager($SessionManager);
  9. }

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

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

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

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

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

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

  1. namespace MyApplication\Controller;
  2.  
  3. use Zend\Mvc\Controller\AbstractActionController;
  4. use Zend\Session\Container; // We need this when using sessions
  5.  
  6. class UserController extends AbstractActionController {
  7. public function loginAction() {
  8. // Store username in session
  9. $userSession = new Container('user');
  10. $userSession->username = 'Andy0708';
  11.  
  12. return $this->redirect()->toRoute('welcome');
  13. }
  14.  
  15. public function welcomeAction() {
  16. // Retrieve username from session
  17. $userSession = new Container('user');
  18. $username = $userSession->username; // $username now contains 'Andy0708'
  19. }
  20. }

猜你在找的PHP相关文章