Zend_Session_Core
は、$_SESSION
へのすべてのアクセスを、典型的なシングルトンパターンである
getInstance() でカプセル化しています。一般に、Zend_Session
コンポーネントを使用する開発者は
$_SESSION
を直接操作すべきではありません。
しかし、既存のコードを Zend_Session と共存させることも可能です。
その場合は、Zend_Session の名前空間を使用することで、既存のコードが
$_SESSION
で使用しているキーとだぶらないようにします。
グローバルなセッションの管理は、Zend_Session_Core で定義されている 静的な "クラス" メソッド群を使用します。これは、Zend_Session に関連するコンポーネントが管理するすべてのセッションに影響をおよぼします。 ほとんどの開発者は、これらの静的メソッドを使用する必要はないでしょう。
$_SESSION
とは異なり、Zend_Session
はすべてのセッションデータを別々の名前空間に分離します。
データを PHP の配列に保存し、その配列を $_SESSION
に保存するのです。この配列のキーが名前空間となります。
Zend_Session のインスタンスを作成すると、選択した名前空間用の、
一意でない "ウィンドウ" が返されます。
指定したキー (名前空間名) に関連付けられる名前空間はひとつだけですが、
複数の "ウィンドウ" で同じ名前空間を使うことが可能です。
これらのインスタンスは、セッション状態データの操作を
指定した名前空間内に制限するはたらきをするもので、
Zend_Session のインスタンスを作成する際に明示的に名前を指定します。
Zend_Session のインスタンスは、このようにしてローカルスコープの変数
(インスタンスオブジェクト) によるスコープの制限を行います。
これにより、セッション名前空間を効率的にローカルスコープに取り込みます。