Zend Framework。 セッションをDBに保存します。

Zend Frameworkに関する小さな記事。

Zend_Frameworkユーザーマニュアルのセクションのより正確な解釈。



オリジナル: Zend_Session_SaveHandler_DbTable



この同じZend_Session_SaveHandler_DbTableを使用すると、セッション情報(およびセッションデータ)がデータベースに保存されるようにZend_Sessionを構成できます。



Zend_Session_SaveHandler_DbTable



セッションを保存するには、少なくとも4つのパラメーターを保存する必要があります。 すなわち:

  1. sid-彼はセッション識別子であり、その長さは32です
  2. 変更-セッション変更の日付、UNIXタイムスタンプ形式
  3. 寿命-このセッション自体の寿命(変更+寿命>時間())
  4. data-実際には、シリアル化された形式でセッションに保存されたデータ


保存する必要があるデータを決定したら、データベースにテーブルを作成します。



CREATE TABLE `session` (

`id` char(32),

`modified` int,

`lifetime` int,

`data` text,

PRIMARY KEY (`id`)

);







デフォルトでは、セッション識別子が主キーになります。

次。 (他のすべてはindex.phpに書かれています)



// , $db

$db = Zend_Db::factory('Pdo_Mysql', array(

'host' =>'example.com',

'username' => 'dbuser',

'password' => '******',

'dbname' => 'dbname'

));



//

Zend_Db_Table_Abstract::setDefaultAdapter($db);



// config Zend_Session_SaveHandler_DbTable

$config = array(

'name' => 'session',

'primary' => 'id',

'modifiedColumn' => 'modified',

'dataColumn' => 'data',

'lifetimeColumn' => 'lifetime'

);



// Zend_Session_SaveHandler_DbTable

// Zend_Session

Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));



// ( )

Zend_Session::start();







$ config

name-データベース内のテーブルの名前

primary-テーブルの主キーであるテーブルフィールド

modifiedColumn-フィールドテーブルの変更日

dataColumn-テーブルフィールド軟骨データセッション

lifetimeColumn-テーブルフィールドのうなり寿命



マニュアルの2番目の例では、複数の値を主キーとして使用するオプションを検討しています。 ここには書きませんでした。



プライマリには、プライマリキーに含まれるフィールドのリストを含む配列を指定します。



primaryAssignmentを通じて、適切な値割り当てます。

sessionId-セッション識別子

sessionSavePath-絶対セッションパス

sessionName-セッション名



All Articles