我有一个旧的代码库,我在同一个文件夹中安装了一个zf2应用程序。 在进入zend和进行身份验证时,我想检查我的主应用程序中的会话是否处于活动状态,因此我在zend中重新验证用户。
如何从我的zend应用程序访问现有的会话参数,因为看起来zend拥有它自己的存储并自己启动一个新的会话库?
答案 0 :(得分:0)
为什么不用$_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会话,那么就像上面的示例一样继续检索您的旧会话数据,并将其推送到已经存在的任何现有命名空间。