Wadslog

[Zend Framework] Zend_Session_Namespace ①

Jan 6, 2008

Zend_Session_Namespaceは名前空間に対応したセッションデータを扱うことができ、これを使えば効果的にセッションデーターでの名前衝突を防ぐことが出来そうです。 Zend_Session_Namespaceは、スーパーグローバル変数$_SESSIONとext/sessionを使用して実装されています。 fooという名前空間のセッションを使用する場合は以下のとおりです。$myNamespace = new Zend\_Session\_Namespace('foo');Zend_Session_Namespaceでの名前空間の実現は以下のようになっています。$\_SESSION\['foo'\]このfooという名前空間のセッションのbarに値を代入するには$myNamespace->bar = $vaule;のようになります。これは$\_SESSION\['foo'\]\['bar'\] = $value;とすることと同じになります。 この操作は、クラスのメンバーへのアクセスを、__get()、__set()、__isset()、 __unset()でオーバーロードしているので可能となっています。 (__isset や __unset はisset() 関数や unset() を使ったときのオーバーロードとなり、PHP 5.1.0 以降で有効です)``` $myNamespace->bar = $vaule; $bar = $myNamespace->bar;

if(isset($myNamespace->bar)) { unset($myNamespace->bar); }

comments powered by Disqus