Session CakePHP 2.3中的会话

Session CakePHP 2.3中的会话,session,cakephp,Session,Cakephp,我刚刚将我的应用程序从CakePHP 1.3升级到2.3。升级控制台远非完美,但经过一天的调试,我已经解决了大部分问题。只剩下一个了,而且是一个大的:会话 在我的应用程序中,我没有使用任何花哨的$this->Session或CakeSession::read login,我一直依赖于PHP Superglobal$\u Session。在1.3中,这很好 进入CakePHP 2.3:会话似乎只在我的函数中的某些地方起作用,并且由于未知的原因,它们有时是空的。举个例子:在控制器中函数的第1行,$\

我刚刚将我的应用程序从CakePHP 1.3升级到2.3。升级控制台远非完美,但经过一天的调试,我已经解决了大部分问题。只剩下一个了,而且是一个大的:会话

在我的应用程序中,我没有使用任何花哨的$this->Session或CakeSession::read login,我一直依赖于PHP Superglobal$\u Session。在1.3中,这很好

进入CakePHP 2.3:会话似乎只在我的函数中的某些地方起作用,并且由于未知的原因,它们有时是空的。举个例子:在控制器中函数的第1行,$\u SESSION['key']给我一个空数组,在第10行它给我一个填充得很好的数组,在我看来它又是空的。非常令人沮丧。我已经能够通过在会话_start()不起作用时调用它来解决这个问题,但我不想走这条路

文件规定:

在CakePHP中通常避免使用$\会话,而首选使用会话类

我有点惊讶:Cake是在PHP上运行的,所以我希望PHP超全局函数能够工作

我正在考虑切换到CakeSession::read和CakeSession::write,但这是一项艰巨的任务:我在整个应用程序中使用会话

在切换之前,我想知道:

  • 在CakePHP2.3.7中,有没有一种方法可以使普通的PHP$\u会话超全局工作
  • 如果不是:CakeSession::read和CakeSession::write是正确的选择吗
一些额外信息:

  • 我正在调用AppController中的会话组件
  • 我正在调用AppController中的会话帮助程序

一般来说,您可以访问$\u会话本身,但随后您还需要手动断言会话开始和其他内容,而CakePHP可以并且应该自行处理这些内容。 那么,当你有一个很好的包装器访问它时,为什么还要麻烦呢

我真的不明白为什么这需要成为一个问题。通常有更大的鱼要炒。 相信我,当我说每个人都使用干净整洁的组件/助手/会话访问时

还有一个很好的站点效果:您不能使用包装器方法触发任何“未定义索引”警告。如果还没有设置这个键,它们将简单地返回null

I am calling the Session component in my AppController
I am calling the Session helper in my AppController

不,帮助程序用于查看层。

谢谢!我之所以不愿意,是因为这是一份非常艰巨的工作。但如果这是最佳实践,我会这么做:)