2012-12-26 87 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');