2012-12-26 58 views
0

我创建一个容器,像这样:ZF2 - 您应该如何访问会话容器中的会话变量?

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

我设置一个变量,像这样:

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

我的问题是,当你需要别人访问此地方,你真的应该实例化新的SessionContainer与你去哪里相同的关键,​​并抓住变种?或者,会话数据是否在控制器中的其他变量中传递?

回答

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');