ドキュメント
リリースカレンダー
リンク
SourceForge.jp SourceForge.JPへ
php.net PHP公式サイトへ

セッション

1. セッションに関するコード例

セッションに値をセットしたり、取得する簡易インターフェイスの使用例です。

// コンテキストからリクエストオブジェクトを取得
$request =& $context->getRequest();

// セッションに値をセットする
$request->setSession('sample', '6.1');
// セッションから値を取得する
$sample = $request->getSession('sample');
echo $sample; // 6.1

これ以外の操作は、セッションオブジェクトから行います。

// コンテキストからリクエストオブジェクトを取得
$request =& $context->getRequest();
// セッションオブジェクトを取得する
$session =& $request->getSessionObject();

// セッションに値をセットする(上の処理と同様)
$session->set('sample', '6.1');
// セッションから値を取得する(上の処理と同様)
$sample = $session->get('sample');

// セッションに配列から複数値を一括してセットする
$values = array(
  'sample1' => '1.1',
  'sample2' => '1.2',
  'sample3' => '1.3'
);
$session->sets($values);

// セッションから全パラメータを取得する
$all_session_data = $session->gets();

// セッションから値を削除する
$session->delete('sample');

// セッションから全パラメータを削除する
$session->deletes();

// セッションを終了する
$session->closeSession();

// セッションIDを取得する
$session_id = $session->getSessionId();
// セッションIDの名前は、SYL_SESSION_NAME定数から取得できます。
$session_name = SYL_SESSION_NAME;

2. セッションストレージ

 セッションを保存するストレージとしては、標準のセッションファイルの形式の他に DBとMemcacheが使用できます。

 セッションストレージとしてDBを使用する場合、 まず定数設定ファイル「defines.xml」の SYL_SESSION_TYPE の値を「db」に設定し、 SYL_SESSION_SAVE_PATH の値に使用するDBの接続文字列を設定します。
※後述のDB設定値 SYL_DB_DSN を使用している場合で、SYL_SESSION_SAVE_PATH を設定していない場合、SYL_DB_DSN が使用されます。

次にセッションの保存に使用するテーブル名とカラムを SYL_SESSION_DB_TABLE に設定します。

…
  <!-- セッションストレージにDBを使用する設定例 -->
  <define name="SYL_SESSION_TYPE">db</define>
  <define name="SYL_SESSION_SAVE_PATH">pgsql:dbname=syldb;host=localhost;
port=5432;user=syluser;passwd=sylpass;client_encode=EUC-JP;persistent=0
</define> <define name="SYL_SESSION_DB_TABLE">session_table:session_id:session_data:
session_expires</define> …

 また、セッションストレージとしてMemcacheを使用する場合、 まず、Memcacheエクステンションをインストールして、Memcache関連の関数を使用できるようにします。 ※phpinfo()にて、Memcacheエクステンションが有効か調べることができます。
※Memcacheエクステンションのバージョンは [PECL memcache >= 2.1.1] です。

次に定数設定ファイル「defines.xml」の SYL_SESSION_TYPE の値を「memcache」に設定し、 SYL_SESSION_SAVE_PATH の値に使用するホスト名とポート番号を設定します。

…
  <!-- セッションストレージにMemcahceを使用する設定例 -->
  <define name="SYL_SESSION_TYPE">memcahe</define>
  <define name="SYL_SESSION_SAVE_PATH">tcp://localhost:11211</define>
…