Action Strategy
XCube は、本格的なフレームワークを持っていません。なぜなら、それは、開発フレームワークではないからです。「フレームワーク」は PHP にとって特別な意味を持つようになっており、 PHP プログラマを刺激します。ですから、私は、余計な討論を誘発しないためにこの「フレームワーク」という単語を使いたくないのです。
(「フレームワーク」は、ウェブプログラムの世界で特別な待遇を受けています。私は、「フレームワーク」の代わりに日本語の「枠組み」を使おうと考えました。しかし「枠組み」の意味は、フレームワークなのです……)

XCube_Controller は、コントローラクラスです。XOOPS2 構造はうまくコントローラを持つことができないので、それは、 Legacy 2.1 において仮想コントローラと呼ばれています。モジュールは、コントローラにアクセスしなくても、機能することができます。開発者は、コーディングスタイルを変える必要がありません。
ActionStrategy
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 があるので、「枠組み」が問題であるとは考えないでしょう。
|