モジュールの回答

一日の良い時間!



おそらく、CMSを作成していると言う必要はありません。これがExplayであることを明確にしたいだけです。 この点に関して、すでに実装されており、 ソースで利用可能なものについて書きます。



この記事では、モジュールの「答え」に焦点を当てます(残念ながら、よりインテリジェントな名前は思いつきませんでした)。 大まかに言えば、答えは何らかのメソッドまたは関数の$ varを返すことを意味します。 ここでは、モジュールがもちろんモデルであるMVCデザインパターンが使用されることを予約する必要があります。 さらに、MVCがCMSでどのように機能するかについてのいくつかの一般的な言葉。



メインコントローラーのタスクは、モジュールメソッドを呼び出し(モジュールはクラスで表される)、その応答をビューに返すことです。 プレゼンテーションは、テンプレートエンジンによって直ちに実行されるのではなく、テンプレートエンジンと既に通信している中間の「コントローラー」によって実行されます。 図面の例:



画像



ここで主なものについて-モジュールの答え。 私のCMSでは、モジュールの応答は常にModuleResponseクラスのオブジェクトでなければなりません。 このクラスのオブジェクトには、テンプレートエンジンが処理する他のオブジェクトが格納されます。 この方法のおかげで、テンプレート処理コードをモジュールに記述する必要がなくなり、特定のテンプレートエンジンへのモジュールのバインドが削除され、さらに複数のテンプレートエンジンを同時に使用する機会が得られます。 したがって、XSLTからSmartyなどに切り替えるのは難しくありません。



私にとっての利点の中で特に重要なのは、1つのPHPコードを使用してテンプレート(ページのHTMLコードに直接移動します)を生成し、AJAXのXML応答を生成できることです。



モジュールコードで上記のメソッドを使用すると、次のようになります。



$oResponse = new ModuleResponse;

$oResponse->setTemplate ('blogs/post'); //

$oResponse->addObject ($object);

return $oResponse;








モジュールの応答に「配置」されたオブジェクトのインターフェースにより、すべてのプロパティを取得したり、XMLを構築したりできることが理解されています。 CMSのXMLの場合、ModuleResponseに分類されるすべてのオブジェクトには__toXML()メソッドが必要です。これにより、外出先でオブジェクトの新しいクラスを導入できます。



All Articles