ZF2 - 你如何访问会话容器中的会话变量?

时间:2012-12-26 04:51:00

标签: php zend-framework2

我创建了一个像这样的容器:

$frontend = new SessionContainer('frontend', null);

我设置了一个变量:

$frontend->offsetSet('foo',$bar);

我的问题是,当你需要在其他地方访问它时,你真的应该在任何地方使用相同的密钥实例化一个新的SessionContainer并获取var吗?或者,会话数据是否在控制器中可用的另一个变量中传递?

1 个答案:

答案 0 :(得分:2)

首选做法是直接访问会话值,就好像它们是实例化容器对象的属性一样。

$frontend = new SessionContainer('frontend');
$bar = $frontend->foo;

会话容器类通过调用:

来完成幕后的其余工作
$frontend->__get('foo');

反过来调用:

$frontend->offsetGet('foo');

使用上面的第一个示例有助于提高可读性。同样,您可以使用:

$frontend->foo = 'bar';

在幕后,这叫:

$frontend->__set('foo', 'bar');

......然后:

$frontend->offsetSet('foo', 'bar');