What is ActionForm? (3)
XCube_ActionFrom には最大の効果を得るための推奨手順があります。それは下記の手順です:

  1. Construct
  2. Prepare
  3. (Load)
  4. Fetch
  5. Validate
  6. Error Check
  7. (Update)

XCube_ActionFormはこの手順に関してフレームワークを作りませんが、Legacyモジュールは理想的な手順としてそれを使用します。 以下で典型的なコードを見てください:

$form =& new Myannounce_MessageEditForm();
$form->prepare();

$form->fetch();
$form->validate();

if (
$form->hasError()) {
  
// display error
}

事実上、コードジェネレータが様々な典型的なコードを生成するので、あなたはこれらのコードをタイプする必要はありません。 しかし、手順を理解するためにこれらのコードを読みましょう。

Initialization

new 演算子の後に prepare() が呼び出されます。 prepare() は、複雑で長い生成コードから成ります。 したがって、開発者はコンストラクタに初期化コードを書きます。初期化においては、これらの関数両方が呼ばれなければなりません。

Fetch

ActionFormは$_REQUESTからの入力値を得て、入力値をプロパティに保ちます。 フェッチの後で、get()メンバー関数はこれらの値にアクセスすることができます。

ActionFormは指定された値だけをとって来て、型設定でキャスティング変換をします。 したがって、開発者はget()を使う限り、キャスティング変換について考える必要はありません。ヌルバイトか悪い制御コードが文字列プロパティかテキスト・プロパティに送られる場合、XCube_ActionFromはプログラムを中止します。

あなたがビデオゲームプログラマーであるなら、ジョイパッドの値を得ることを想像してください。 恐らく、ジョイパッドのための特別なクラスは、ジョイパッドに関する特別な条件下で働いて、そして、値だけを保つでしょう。ほとんどの開発者は、BIOSかデバイスドライバとファイトするためにプログラムを作る必要はありません。 同様に、ActionFormを持つ開発者はいくつかのウェブの特別条件のためにプログラムを作る必要はありません。

キャスティング変換のためのフォームプロパティの型設定は、BOOL、INTFLOATSTRINGTEXTです。 TEXTCRLFを受け入れますが、STRINGはそれらを受け入れません。

さらに、開発者はそれぞれのフォームプロパティの fetch() をオーバーライドすることができます。あなたがこの特別な用法を知りたいのであれば、ソースコードにおけるコメントを読むか、またはドキュメント・システムでソースコードからドキュメントを作成してください。
|