Zend-framework-session-management
提供:Dev Guides
Zend Framework-セッション管理
セッションは、Webアプリケーションで非常に重要な概念です。 ユーザーのデータを限られた期間ウェブサーバーに保存するオプションを提供します。 Zendフレームワークは、セッション情報を処理するための別個のコンポーネント zend-session を提供します。
セッションコンポーネントをインストールする
セッションコンポーネントは、以下に指定されている Composer を使用してインストールできます-
composer require zendframework/zend-session
セッションコンポーネント
Zendフレームワークは、セッション管理を処理する6つのコンポーネントを提供します。 これらのコンポーネントはすべて以下で説明されています-
- Zend \ Session \ Container -セッション情報を読み書きするメインAPI。
- Zend \ Session \ SessionManager -セッションのライフサイクル全体を管理するために使用されます。
- Zend \ Session \ Storage -これは、セッションデータをメモリに保存する方法を指定するために使用されます。
- Zend \ Session \ SaveHandler -RDBMS、Redis、MangoDBなどの物理的な場所にセッションデータを保存および取得するために使用されます。
- Zend \ Session \ Validator -これは、初期および後続のリクエストのリモートアドレスとユーザーエージェントをクロスチェックすることにより、ハイジャックからセッションを保護するために使用されます。
- Zend \ Session \ Config \ SessionConfig -セッションの動作を設定するために使用されます。
デフォルトの構成は、セッションで動作するのに十分です。 上記のコンポーネントを使用すると、セッションのすべての側面を簡単に処理できます。
セッションコンポーネントの例
Zendフレームワークのセッションを理解するための新しいページを作成するために、次の点を順守しましょう。 デフォルトでは、セッションを管理するには Container クラスのインスタンスを作成するだけで十分です。
- TutorialController に sessionAction という新しいアクションを作成します。
- Container オブジェクトを初期化します。
$c = new Container();
- 任意のキー count が存在するかどうかを確認します。 キーが利用できない場合、値1で count を初期化します。 使用可能な場合は、次のコードに示すように値を増やします。
if (!isset($c->count)) {
$c->count = 0;
} else {
$c->count++;
}
ViewModelにカウントを登録します。
myapp/module/Tutorial/view/tutorial/tutorial/session.phtmlにsessionAction、session.phtmlのテンプレートファイルを作成し、 count 値をレンダリングします。
ページを更新すると、セッションの count の値が増加します。 完全なリストは次のとおりです-
*TutorialController.php*
public function sessionAction() {
$c = new Container();
if (!isset($c->count)) {
$c->count = 0;
} else {
$c->count++;
}
$view = new ViewModel([
'count' => $c->count,
]);
return $view;
}
*session.pthml*
Session data, COUNT = <?= $this->count ?>
サンプル結果
Session data, Count = 5