如何从CakePHP组件中访问非Cake会话数据

时间:2012-07-09 15:35:10

标签: php session cakephp integration

我目前正在集成两个php应用程序:

  1. 多年来构建的大型定制PHP Web应用程序,不是用CakePHP编写的。
  2. 一个小型CakePHP仪表板应用程序(jSlate)。
  3. 蛋糕应用程序位于主应用程序的同一个域和子文件夹中。

    在CakePHP应用程序中,我需要访问主要定制应用程序在$ _SESSION中设置的数据,但它似乎无法访问。我假设Cake正在使用会话数据。它存储在我可以访问它的地方吗?如果是这样的话?

    我尝试过Accessing cakephp session variable from a php script?的答案,即:

    session_name('CAKEPHP'); 
    session_start(); 
    print_r($_SESSION);
    

    但它不包含我需要的会话变​​量。

1 个答案:

答案 0 :(得分:0)

主app需要在设置变量之前指定session_name:

session_name('MAINAPP');
$_SESSION['foo'] = 'bar';

然后在CakePHP应用程序中,您可以通过以下方式访问:

session_name('MAINAPP');
$foo = $_SESSION['foo'];
session_name('CAKEAPP');

最后一行非常重要,因为它会将会话名称重置回Cake App的名称,如果没有该名称,蛋糕会话变量将无法访问。

或者,您可以将主应用程序和蛋糕应用程序设置为使用相同的会话名称,但这会引入命名冲突的可能性。