カテゴリー

最新の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブログ検索

RSSフィード

ブロとも申請フォーム

この人とブロともになる

スポンサーサイト

スポンサー広告
--.--.--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ベンチャーブログのランキングに参加しています。
下のバナーをクリックして応援していただけると嬉しいです。
にほんブログ村 ベンチャーブログへ

PHPフレームワークもどき「PnF」(8)~サンプルコード「ItemBox」

PHP
2008.11.24
VCのコードとしてはこれが最後です。「ItemBox」のコードです。

コード8-1

3~5行目
まずVCの親クラスをインクルードし「VcItemBox」クラスを派生させます。

14~22行目
「ItemBox」が保持すべきプロパティ情報を宣言します。ここでは「詳細」を表示するか否かのステータス情報を保持する「ShowDescription」を宣言しています。

24~58行目
「ItemBox」で使用するVPを宣言しています。「Name」「Mail」「Description」はテキスト表示要素、「Navigation」はひとつの要素だけを持つナビゲーションリンクです。このナビゲーション要素は「SWITCH_DESCRIPTION」というローカルイベントを発生させるように設定されていますが、表示文字列はブランクになっています。表示すべき文字列は「詳細」の表示状態によって変わるからです。

コード8-2

61行目
「ItemBox」が引き受けるGET変数の定義です。このVCはGET変数を引き受けないため、空配列を記述しておきます。

64~78行目
「ItemBox」がサブスクライブするイベント名と、各イベント名に対応するアクションメソッド名の定義です。「SWITCH_DESCRIPTION」を受け取った時には「switchDescription」、「CLEAR_LIST」を受け取った時には「clearItem」、「REFRESH」を受け取った時には「refreshViewData」を呼び出します。

コード8-3

85~109行目
イベント処理チェーンに入る直前に実行したい処理を「前処理」として記述します。「ItemBox」は生成されたときに表示すべき情報を受け取るため、その情報をVPプロパティに反映させる必要があります。またナビゲーションの表示文字列も「詳細」の表示状態に合わせて変更する必要があります。例えば「詳細」が表示されていないのであれば「詳細を表示する」、表示されているのであれば「詳細を隠す」にするわけです。ここではこれらの処理を行っています。

111~138行目
アクションメソッド「switchDescription」の処理内容です。このアクションメソッドは「詳細」の表示状態を切り替えます。まず現在の表示状態を「$this->getVcProperty」で取得し、その内容に応じて値をスイッチし、スイッチした値を「$this->setVcProperty」でセットします。またこの時、ナビゲーションの表示文字列も変更します。

140~144行目
アクションメソッド「cleaItem」の処理内容です。自分自身に割り当てられたSESSION変数の内容をアンセットします。これを行わないと「アイテムを登録」→「アイテムリストのクリア」→「再びアイテムを登録」を行った時にVC名が使い回されるため、古いSESSION変数が使用され、不適切な表示状態になる可能性があるからです。動的に生成され、VC名が使い回される可能性のあるVCでは、必ずこのような処理を行う必要があります。

146~147行目
REFRESHイベントに対応した処理の記述です。ここでは何も行いません。

コード8-4

HTMLテンプレートです。「ShowDescription」の内容によって「詳細(description)」の表示を切り替えています。

これでサンプルアプリケーションに必要なVCのコードがすべて揃いました。
スポンサーサイト

ベンチャーブログのランキングに参加しています。
下のバナーをクリックして応援していただけると嬉しいです。
にほんブログ村 ベンチャーブログへ

FC2Ad

相続 会社設立

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。