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