我正在基于cakephp 3开发一个基于php和mysql的处理器和内存使用方面的中等程度的项目,但为用户提供99%的时间完全相同的页面。Session已经开始
所以我决定喜欢使用像我几年前开发的this one这样的缓存系统。它只是保存完整页面的缓存html文件,避免对每个请求做所有的详细说明。这是一个愚蠢的系统,但它的工作非常好。
问题是,我需要访问会话变量进行一些检查。要做到这一点我触发session_start()
在我的缓存系统,有时CakePHP的抛出这个错误时的页面是不是已经被缓存:
Session was already started
我怎样才能避免这个错误?有没有办法在我的缓存系统中关闭会话,以便cakephp最终可以启动一个新的?我曾尝试与session_abort
和session_register_shutdown()
,但没有工作,我甚至不知道这是做什么,我需要正确的方法...
编辑:处理流程是:请求 - >缓存系统 - > cakephp。因此,我的session_start()
出现在cakephp之前,我倾向于不要碰到cakephp核心文件,这就是为什么其他问题对我没有用处。我想在我的缓存系统中解决这个问题。
这不是一个重复的,至少不是http://stackoverflow.com/questions/10093264/load-session-start-only-if-session-does-not-exist的副本,如“问题”位于CakePHP内核中,不能简单地像用户级代码那样更改,这应该以不同的方式修复。 – ndm
不管是关闭会话还是让CakePHP再次打开它是“_正确的方式_”,使用'session_abort()',“_doesn't work_”究竟发生了什么可能意味着什么? (它应该工作) – ndm