Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。4エントリを表示するPHPスクリプトエントリを登録するPHPスクリプトエントリを削除するPHPスクリプトゲストブックアプリケーションの実行まとめ参考資料ゲストブックアプリケーションそれでは、JDOを使ってデータを保存するゲストブックアプリケーションを作ってみましょう。Project」を選択します。プロジェクトの設定情報として、このサンプルでは次の値を設定します。Toolkit」のチェックを外しておきますそれ以外の項目はデフォルトのままとします。設定ファイルQuercusを有効にするために「war/WEB-INF」以下にある次の3つのファイルを修正、追加します。Engine定義ファイル)web.xml(デプロイメント記述子ファイル)php.ini(Quercus用PHP設定ファイル)これらの設定ファイルについては前編と同じ値を設定します。ゲストブックのエントリを永続化するクラス最初にゲストブックのエントリを永続化するためのクラス、Entryクラスを作成します。Entryクラスでは名前とコメント、投稿日時を定義し、永続化するためのアノテーションを宣言します。その他のgetter/setter}ここでは、次のような処理を実装しています。主キーとしてLong型のIdフィールドを定義し、値は自動生成します。登録日時はコンストラクタで設定します。登録日時を文字列に変換して返すこのとき、TimeZoneを"Asia/Tokyo"として設定します。PHPでEntryクラスをラップするためのクラスこの例ではなるべくPHPで頑張ることを目的にしていますので、JavaのEntryクラスをラップするためのPHPクラスを定義します。PHPのラップクラスとして「GuestBook」を次のように定義します。}}?>使用するJavaのクラスをインポートするQuercusではJavaのクラスも使うことができます。ここでは使用するJavaのクラスをimport命令でインポートしています。JavaのEntryクラスのインスタンスをメンバ変数として持つ実際の値はJavaのEntryクラスで管理するため、PHPのGuestBookクラスではEntryクラスのインスタンスを持ちます。後述するデータ表示用PHPスクリプトから値を取得するためのgetter関数を定義します。Entryクラスのメソッドを呼び出します。Engineデータストアに保存PersistenceManagerクラスのインスタンスを使用してEntryクラスのインスタンスを保存します。引数として受け取った値を取得数の上限として、Entryクラスのインスタンスを取得します。JDOQLのRange句を使用しています。EngineデータストアよりEntryクラスのインスタンスを取得し、nullでなければ削除します。クエリ文字列のfrom句にはEntryクラスのFQCNを指定しています。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Technologies。執筆コミュニティ「WINGSプロジェクト」代表。