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つあります:

  1. あなたは、 cubson または別のツールによって XML 構成ファイルから XCube_ActionForm のサブクラスを生成し得ます。
  2. 同様に、あなたは、cubson によって、データベース構造、もしくは、 XML データオブジェクト構成ファイルから XML 構成ファイルを生成し得ます。

コアチームは、 XCube_ActionForm の設計では手で ActionForm を定義することはが可能ではないと考えます。従って、我々は、 XOOPS Cube Legacy 2.1 リリース時に、公式コンバータをリリースするでしょう。そのコンバータは、 cubson のような他の機能を持っていません。しかし、 PHP プログラムですから、だれでも、それを動かすことができます。

ところで、もしあなたが struts を知っていれば、これらの XML のフォーマットが struts ライクであることに気づくでしょう。しかし、 XOOPS Cube は、これらの XML を決して直接扱いませんから、このフォーマットは、重要事項ではありません。フォーマットを必要とするものは、コンバータであり、そして、各々のフォーマットは、各々のツールにおいて異なります。様々なフォーマットを扱う様々なツールがリリースされれば、あなたの好みのフォーマットを選択することができるようになります。
|