PHP::Session - PHPセッションファイルの読み書き
use PHP::Session;
my $session = PHP::Session->new($id);
# session id my $id = $session->id;
# セッションデータの get/set
my $foo = $session->get('foo');
$session->set(bar => $bar);
# セッションデータの削除
$session->unregister('foo');
# すべてのセッションデータを削除 $session->unset;
# データが登録されているかチェック
$session->is_registered('bar');
# セッションデータを保存 $session->save;
# セッションを破壊 $session->destroy;
# もし存在しなければ、セッションファイルを生成する
$session = PHP::Session->new($new_sid, { create => 1 });
PHP::Session を使用するとPHP4のセッションファイルを読み書きすることが でき、PerlアプリケーションのセッションをPHP4と共有することができます。
セッション管理に Apache::Session のインタフェースを使用したい場合には、 Apache::Session::PHP を使用すると、このモジュールと Apache::Session の 橋渡しをうまくやってくれます。
コンストラクタ new にはハッシュリファレンスでオプションを渡せます。
セッションファイルが保持されるディレクトリパス。デフォルトは /tmp。
シリアライズハンドラのタイプ。現在サポートされているのはPHPデフォルト シリアライズハンドラのみ。
存在しない場合にセッションファイルを生成するか。デフォルトは0。
変更をセッションファイルに自動的に保存するか。デフォルトは0。
以下のような場合に:
my $session = PHP::Session->new($sid, { auto_save => 1 });
$session->param(foo => 'bar');
# あーっと save() メソッドを忘れてる!
auto_save を真の値にしておけば、パラメータを変更した後に saveメ
ソッドを呼び忘れても、セッションオブジェクトがスコープ外に消えるときに、
このモジュールが自動的にセッションファイルに保存します。
0にしておいた場合(デフォルト)、かつ warnings がオンの場合には、以下の ような警告を発生させます:
PHP::Session: some keys are changed but not modified.
PHP の配列は Perl のハッシュになります。
PHP でのオブジェクトは PHP::Session::Object (空のクラス) に bless され
たオブジェクトとなり、元のクラス名は _class というキーに保持されま
す。
データを save() するときのロックは排他的な flock にて行われます。こ
れは PHP の実装と同じです。
十分なテストはおこなっていませんので、シリアライゼーションまわりでバグ があるかもしれません。もし見つけたらemailで教えてください。
WDDX.pm を使用して WDDX をサポートする。
Tatsuhiko Miyagawa <miyagawa@bulknews.net>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Apache::Session::PHP, WDDX, Apache::Session, CGI::kSession