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 クラスのインスタンスを作成するだけで十分です。

  • TutorialControllersessionAction という新しいアクションを作成します。
  • 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