- summary セッション
- labels Manual
BEARのセッションはPEAR::HTTP_Session2()を利用しています。ページにインジェクトして使います。
|| キー|| 型 || 意味 || 必須? || デフォルト || || adapter || mixed || アダプター || || 1 || || prefix || string || セッションキープリフィックス || || null || || path || string || path: dsn | session file path | memcache host(s) || || || || idle || int || アイドル時間 || || || || callback || string || idleタイムアウトコールバック|| || || || expire || int || エクスパイア時間 || || 0 || || expire_callback || string || expireタイムアウトコールバック|| || || || gc_max_lifetime || int || GCが実行されない最大時間|| || ||
※ アダプター 0 なし | 1 File | 2 DB | 3 memchache
App.phpでセッションエンジンを選択します。memchaced, DB, fileセッションが使用できます。※fileセッションではwebの分散化が利用できません。基本機能は以下の通りです。
その他のHTTP_Session2の機能が利用できます。時間が経ってパスワードの入力を再度 求めたりする機能が実装できます。
セッションタイムアウトは2種類あります。セッション開始から最後の操作からの時間がカウントされるidleと、セッション開始してからの時間がカウントされるexpireです
最後のweb閲覧から一定時間たったらセッション切れが通知されるオプションです。idleでは時間を設定してcallbackでアイドル時間が切れた時にコールバックされるメソッド名を指定します。例えば10分アクセスが行われない`App_Session::onSessionTimeout()`をコールするときは以下のように設定します。
`App_Page::onSessionTimeout()`内ではセッションタイムアウトを知らせたり、再ログインを受け付けるフォームを表示したりします。※以下のように明示的に破壊するか、expireで指定した時間がこない限りセッションデータは破壊されません。
コールバック先ではセッションを破棄して無効にするか、延長して使用を続けるかを記述することができます。コールバックを指定していないとセッションは破棄されます。
セッション開始してからセッションタイムアウトはexpireで指定します。expire_callbackオプションが指定されてないとこの時間のたったセッションは破棄されます。
DBセッションを利用する場合、デフォルトで以下のテーブルを作成する必要があります。
}}}