永続化がらみでPHPでアプリケーションスコープを扱うためのクラスを作ってみました。
ApplicationScope#setでアプリケーションスコープに変数をセット。
require_once("Book.php");
require_once("ApplicationScope.php");
$book =& new Book();
$book->name = "Effective Java";
$book->price = 1000;
$book->releaseDate = "2004/12/01";
$app =& new ApplicationScope();
$app->set("book", $book);
$app->set("mail", "bg@p0t.jp");
$app->set("age", 26);
ApplicationScope#getでアプリケーションスコープから変数を取得。
require_once("Book.php");
require_once("ApplicationScope.php");
$app =& new ApplicationScope();
$book =& $app->get("book");
$mail =& $app->get("mail");
$age =& $app->get("age");
var_dump($book);
var_dump($mail);
var_dump($age);
中身は結局ファイルにserializeです。デフォルトでsessionのディレクトリに一時ファイルを作ってます。setの時はその時点で書き込まれるので他のリクエストともやり取りできます。といってもアプリケーションスコープってどういう時に必要なんだろう。ASPやServletでも使ったこと無いです。