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-セッション名

Source: https://habr.com/ru/post/J42714/


All Articles