pure.session
[ class tree: pure.session ] [ index: pure.session ] [ all elements ]

Class: SESSION_HANDLER

Source Location: /package/pure/session/SESSION_HANDLER.inc

Class Overview

PURE_Class
   |
   --SESSION_HANDLER

セッションハンドラを定義するクラスです。


Constants

Methods



Class Details

[line 34]
セッションハンドラを定義するクラスです。

Ag:PUREの拡張されたセッション管理では、セッションハンドラを置き換えます。 これはAg:PUREの拡張されたセッション管理がサブセッション、サブセッション毎のワークディレクトリを利用するためで、ガーベージコレクションは正確にこれを破棄できる能力が必要になります。

なお、セッション情報が保存される場所はphp.iniのsession.save_pathディレクティブに従います。 session.save_pathディレクティブによって参照されるディレクトリがPHPから更新可能になっているようにパーミッションが設定されている必要があります。

注意:Ag:PUREの標準セッション管理がセッションハンドラを置き換えるため、php.iniのsession.auto_startディレクティブは0である必要があることに注意してください。 また同様にsession.save_handlerディレクティブの設定値も"user"にする必要があることに注意してください。




[ Top ]


Class Methods


static method close [line 154]

static bool close( )

セッションを閉じるセッションハンドラです。

基本的にはセッションを閉じる際には何もしません。 ハンドラは単純に処理成功を表すtrueを返します。




Tags:

return:  処理成功か否か
access:  public


[ Top ]

static method destroy [line 375]

static bool destroy( string $id)

セッションに登録されたデータを全て破棄します。

セッションの明示的な破棄とガーベージコレクションによって収集された際に実行されます。




Tags:

return:  処理成功か否か
access:  public


Parameters:

string   $id   セッションID

[ Top ]

static method gc [line 391]

static bool gc( string $maxlifetime)

セッションのガーベージコレクションを行います。

PHP標準の動作と同様、セッションの最大生存時間を過ぎたセッションファイルを探し出して削除します。 touch関数がWindows上で利用できない制限から、セッション情報を格納しているディレクトリではなく、セッションファイル本体の最終更新日時を参照します。 セッションファイルが存在しないセッション情報を格納するディレクトリと思しきディレクトリも削除されます。




Tags:

return:  処理成功か否か
access:  public


Parameters:

string   $maxlifetime   セッションの最大生存時間

[ Top ]

static method getSessionDir [line 95]

static string getSessionDir( [string $id = false])

セッション情報を格納するディレクトリをフルパス取得します。

任意のセッションIDを指定可能ですが、省略した場合には現在のセッションIDが利用されます。 セッションが開かれていない場合にはfalseを返すことに注意してください。

セッションIDはセッションが開かれて最初にセッションデータの読み込みが行われる際に決定されます。 従って、新規のセッションを開く際にはセッションが開いているだけのタイミングではディレクトリ名が取得されないことに注意してください。




Tags:

return:  セッションディレクトリ名
access:  public


Parameters:

string   $id   セッションID

[ Top ]

static method getSessionFile [line 120]

static string getSessionFile( [string $id = false])

セッション情報を格納するファイルをフルパスで取得します。 セッション情報を格納するファイルには$_SESSIONスーパーグローバル変数の内容がシリアル化されて格納されています。

任意のセッションIDを指定可能ですが、省略した場合には現在のセッションIDが利用されます。 セッションが開かれていない場合にはfalseを返すことに注意してください。

セッションIDはセッションが開かれて最初にセッションデータの読み込みが行われる際に決定されます。 従って、新規のセッションを開く際にはセッションが開いているだけのタイミングではディレクトリ名が取得されないことに注意してください。




Tags:

return:  セッションファイル名
access:  public


Parameters:

string   $id   セッションID

[ Top ]

static method initialization [line 66]

static void initialization( )

セッションハンドラを置き換えてセッション管理をAg:PUREの管理下に置きます。

initializationメソッドはSESSION_HANDLERモジュールがインポートされた際に自動的に実行されます。 initializationメソッドの実行前にセッションが有効になっていた場合にはESessionException例外が発生します。




Tags:

throws:  ESessionException 既にセッションが開かれている
access:  public


[ Top ]

static method open [line 139]

static bool open( string $session_save_path, string $session_name)

セッションを開くセッションハンドラです。

基本的にはセッションを開く際には何もしません。 セッション情報を保存する先のパスと、(将来的な対応のため)セッション名のみ記憶し、ハンドラは単純に処理成功を表すtrueを返します。




Tags:

return:  処理成功か否か
access:  public


Parameters:

string   $session_save_path   セッションセーブパス
string   $session_name   セッション名

[ Top ]

static method read [line 329]

static string read( string $id)

指定のセッションIDのセッションデータを読み込みます。

初めて生成されたセッションである場合などでセッションデータが見付からない際には、セッション管理領域を初期化します。 従って、セッションに値を書き込む動作が発生していなくてもセッション管理領域となるディレクトリと0バイトのセッションファイルが作成されることに注意してください。 これらは明示的にセッションが破棄されるか、ガーベージコレクションで収集されるまで削除されません。

PHPのガーベージコレクションは(発生する場合には)readハンドラが呼び出された後に発生します。 そのためreadハンドラは既存のセッションファイルから情報を読み出す際にもセッションファイルの最終更新日時を更新します。 これにより現在有効なセッションがガーベージコレクションに収集されることを防ぎます。




Tags:

return:  セッションデータ
access:  public


Parameters:

string   $id   セッションID

[ Top ]

static method write [line 352]

static bool write( string $id, string $sess_data)

指定のセッションIDのセッションデータを書き込みます。



Tags:

return:  処理成功か否か
access:  public


Parameters:

string   $id   セッションID
string   $sess_data   セッションデータ

[ Top ]


Class Constants

SESSION_FILE_NAME =  'session.serialize'

[line 37]

セッションディレクトリ内でセッション情報をシリアライズして保持するファイル名です。


[ Top ]



Documentation generated on Sun, 06 Jan 2008 01:33:27 +0900 by phpDocumentor 1.3.2