7

ネイティブの PHP セッション機能は優れていますが、最終的にはシングルトンです。複数のアプリの状態を維持し、既に開始されているセッション (アプリ フレームワークなど) の範囲内で維持する必要がある場合があります。技術的には、変更後にセッションを停止/再開できますsession_name()が、これはほとんどのアプリでは非現実的/不可能/安全ではありません。session.save_path1 つのアプリが非ディスク アダプターを使用してセッション データを格納する場合も、共有を使用することはできません。

ネイティブ セッションの機能をユーザー コードで実行できない理由はないので、これを実行した人はいますか?

更新 1: CI_Sessionは確かに便利なコードを含むユーザーランドの実装ですが、CodeIgniter と高度に結合されています。

更新 2:これはすばらしい API です。

// setup
$saveHandler = new UserlandSession_SaveHandler_Files('5;/tmp');
$sess = new UserlandSession($saveHandler);
$sess->name('PHPSESSID2');
$sess->gc_maxlifetime = 86400;
$sess->setProxy($state); // passed by ref
// usage
$sess->start(); // stored string unserialized to $state
$state['foo'] = 'bar';
$sess->write_close(); // $state serialized to storage

更新 3: PHP5.3の実装を作成しました。

4

2 に答える 2

2

CodeIgniter には、ネイティブ PHP セッションを使用しないセッション クラスがあります。

于 2011-05-19T16:15:09.883 に答える