What is ActionForm? (2)
XCube_ActionForm
は、抽象クラスです。そのため、あなたは、 ActionForm メカニズムを使うために、
XCube_ActionForm のサブクラスを定義しなければなりません。例となるソースコードを読むために
/modules/myannounce/admin/forms/MessageEditForm.class.php
を開いてください。そこには非常に大きなクラスがあります。
これは、 XCube_ActionForm のサブクラスです。このクラスは、 prepare()
におけるフォームプロパティ、及び、フィールドプロパティをセットし、load() と update()
メンバ関数を実装します。あなたは、そのような複合的クラスを定義することが難しいと思うでしょう。しかし、開発者は、そのようなクラスを直接定義する必要がありません。ツールによって
XML
構成ファイルからサブクラスを生成できます。/modules/myannounce/admin/.xml/message_edit.xml
を見てください。これは、サブクラスを定義するための構成ファイルです。
サブクラスを定義することについて重要なことが2つあります:
- あなたは、 cubson または別のツールによって XML 構成ファイルから
XCube_ActionForm のサブクラスを生成し得ます。
- 同様に、あなたは、cubson によって、データベース構造、もしくは、 XML
データオブジェクト構成ファイルから XML 構成ファイルを生成し得ます。
コアチームは、 XCube_ActionForm の設計では手で ActionForm
を定義することはが可能ではないと考えます。従って、我々は、 XOOPS Cube Legacy 2.1
リリース時に、公式コンバータをリリースするでしょう。そのコンバータは、 cubson
のような他の機能を持っていません。しかし、 PHP
プログラムですから、だれでも、それを動かすことができます。
ところで、もしあなたが struts を知っていれば、これらの XML のフォーマットが struts
ライクであることに気づくでしょう。しかし、 XOOPS Cube は、これらの XML
を決して直接扱いませんから、このフォーマットは、重要事項ではありません。フォーマットを必要とするものは、コンバータであり、そして、各々のフォーマットは、各々のツールにおいて異なります。様々なフォーマットを扱う様々なツールがリリースされれば、あなたの好みのフォーマットを選択することができるようになります。