我目前正在集成两个php应用程序:
- 一个经过多年构建的大型定制PHP web应用程序,不是用CakePHP编写的
- 一个小型CakePHP仪表板应用程序(jSlate)
蛋糕应用程序在同一个域上,位于主应用程序的子文件夹中。
在CakePHP应用程序中,我需要访问主定制应用程序在$_SESSION中设置的数据,但它似乎不可访问。我认为Cake正在处理会话数据。它是否存储在我可以访问的地方?如果是,如何访问?
我已经尝试了从php脚本访问cakephp会话变量的答案?,即:
session_name('CAKEPHP');
session_start();
print_r($_SESSION);
但它不包含我需要的会话变量。
在设置变量之前,主应用程序需要指定session_name:
session_name('MAINAPP');
$_SESSION['foo'] = 'bar';
然后在CakePHP应用程序中,您可以通过以下方式访问:
session_name('MAINAPP');
$foo = $_SESSION['foo'];
session_name('CAKEAPP');
最后一行很重要,因为它将会话名称重置回Cake应用程序的名称,否则Cake会话变量将无法访问。
或者,您可以将主应用程序和蛋糕应用程序设置为使用相同的会话名称,但这会引入命名冲突的可能性。