What is ActionForm? (3)
XCube_ActionFrom
には最大の効果を得るための推奨手順があります。それは下記の手順です:
- Construct
- Prepare
- (Load)
- Fetch
- Validate
- Error Check
- (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、INT
、FLOAT
、STRING
、TEXT
です。
TEXT
はCR
とLF
を受け入れますが、STRING
はそれらを受け入れません。
さらに、開発者はそれぞれのフォームプロパティの fetch()
をオーバーライドすることができます。あなたがこの特別な用法を知りたいのであれば、ソースコードにおけるコメントを読むか、またはドキュメント・システムでソースコードからドキュメントを作成してください。