ZendFramework-セッション管理

セッションは、Webアプリケーションで非常に重要な概念です。限られた期間、Webサーバーにユーザーのデータを保持するオプションを提供します。Zendフレームワークは、別個のコンポーネントを提供します。zend-session セッション情報を処理します。

セッションコンポーネントをインストールする

セッションコンポーネントは、を使用してインストールできます Composer 以下に指定されているように-

composer require zendframework/zend-session

セッションコンポーネント

Zend Frameworkは、セッション管理を処理するための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 Frameworkのセッションを理解するための新しいページを作成するために、次の点を順守しましょう。デフォルトでは、のインスタンスを作成するだけで十分です。Container セッションを管理するクラス。

  • 新しいアクションを作成し、 sessionActionTutorialController

  • 初期化 Container オブジェクト。

$c = new Container();
  • 任意のキーかどうかを確認します count存在します。キーが利用できない場合は、count 値1を使用します。使用可能な場合は、次のコードに示すように値をインクリメントします。

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 ?>

Sample Result

Session data, Count = 5