【问题标题】:Accessing Old PHP Sessions from Zend framework从 Zend 框架访问旧的 PHP 会话
【发布时间】:2014-05-14 20:29:15
【问题描述】:

我有一个旧代码库,并且在同一个文件夹中安装了一个 zf2 应用程序。 在进入 zend 并出于身份验证目的时,我想从我的主应用程序中检查会话是否处于活动状态,因此我在 zend 中重新对用户进行身份验证。

我如何从我的 zend 应用程序访问已经存在的会话参数,因为 zend 似乎有它自己的存储并自己启动一个新的会话库?

【问题讨论】:

    标签: php session zend-framework2


    【解决方案1】:

    您为什么不直接使用$_SESSION 正常访问会话,获取它的密钥和数据并将其转储到 Zend 会话中?

    例子:

    use Zend\Session\Container as SessionContainer;
    
    // say the old user session is an array
    // array(
    //     'name' => 'john',
    //     'key2' => 'val2',
    // );
    
    // access the old data normally
    $old_user_data = $_SESSION['user'];
    
    // create a new session container with "old_data" as the namespace
    $session = new SessionContainer('old_data'); 
    
    // now since this is an old "user" info just set the key to be "user" in 
    // this namespace
    $session->user = $old_sess_data;
    

    在会话中看起来像这样:

    [old_data] => Zend\Stdlib\ArrayObject Object
        (
            [storage:protected] => Array
                (
                    [user] => Array
                        (
                            name => john,
                            key2 => val2,
                        )
    
                )
    
            [flag:protected] => 2
            [iteratorClass:protected] => ArrayIterator
            [protectedProperties:protected] => 
        )
    

    现在,如果您已经有一个现有的 Zend 会话,那么请继续检索您的旧会话数据,就像在上面的示例中一样,并将其推送到已经存在的任何现有命名空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 2011-05-26
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多