Action Strategy
XCube
は、本格的なフレームワークを持っていません。なぜなら、それは、開発フレームワークではないからです。「フレームワーク」は
PHP にとって特別な意味を持つようになっており、 PHP
プログラマを刺激します。ですから、私は、余計な討論を誘発しないためにこの「フレームワーク」という単語を使いたくないのです。
(「フレームワーク」は、ウェブプログラムの世界で特別な待遇を受けています。私は、「フレームワーク」の代わりに日本語の「枠組み」を使おうと考えました。しかし「枠組み」の意味は、フレームワークなのです……)
XCube_Controller は、コントローラクラスです。XOOPS2
構造はうまくコントローラを持つことができないので、それは、 Legacy 2.1
において仮想コントローラと呼ばれています。モジュールは、コントローラにアクセスしなくても、機能することができます。開発者は、コーディングスタイルを変える必要がありません。

XCube_Controller は、モジュールプロセスについて空のメンバ関数を持っています。それは、
execute() です。そのメンバ関数は、 XCube_Controller のメンバプロパティである
XCube_ActionStrategy
のオブジェクトに(具体的処理を)委託します。そのメンバプロパティのデフォルト値は、 NULL
です。つまり、あなたが方針を設定するまで、 XCube_Controller
は、フレームワークとして機能しません。あなたは、あなたの ActionStrategy
を作成し、そして、それを XCube_Controller
に埋め込むことができます。そう、つまり、着脱式だということです。
ご存じのように、 Legacy
は、フレームワーク・プログラミング・ライクなコードを多く含みます。しかし、私達は、それを開発者に強要することはしません。そして、そのフレームワークは、
Legacy のフィーチャーではありません。class/
ディレクトリを見てください。私達は、モジュール毎に XCube_ActionStrategy
のサブ‐クラスを定義しました。
あなたが本職であるならば、あなたは、 mojavi2 や exFrame::mojaLE より簡素である
Legacy
の簡易フレームワークを使うことを望まないでしょう。私は、余計な討論を誘発しないために、行き過ぎなほどシンプルにそれを設計しました。それは、私が多くの注意を払った部分です。
このような情況は、私にストレスを加えました。そして、PHP
世界を知るために、私は、それを研究することを望みました。しかし、私は PHP
世界を研究するための十分な時間を保持できませんでした。それが私にとって別世界であるということは残念です。
しかし、私が思うに、大部分の開発者は、着脱式メインロジック方式である ActionStrategy
があるので、「枠組み」が問題であるとは考えないでしょう。