Actions

モデル-ビュー-コントローラ

From Joomla! Documentation

This page is a translated version of a page Model-View-Controller and the translation is 100% complete.

Other languages: català 86% • ‎English 100% • ‎español 100% • ‎français 100% • ‎Bahasa Indonesia 100% • ‎日本語 100% • ‎Nederlands 100% • ‎Kiswahili 100%

Joomla はモデル-ビュー-コントローラ デザインパターンの使用を多用します。

Joomlaが特定のページをGETする、またはフォームからデータをPOSTする等、ユーザからの要求を処理し始める時、Joomla!がまず最初にすることはどのコンポーネントが要求に応じるかを決定するURLを解析します。そしてコンポーネントに制御を引き渡します。

コンポーネントがMVCパターンに沿って設計されている場合は、コントローラに制御を渡します。コントローラは要求の解析を解析し、どのモデルが要求を満たす必要があるか、どのビューをユーザに表示するかを決定する役割があります。

モデルは、コンポーネントによって使用されるデータをカプセル化します。ほとんどの場合、このデータはJoomlaのデータベース、またはいくつかの外部データベースのいずれかから来るが、モデルが別のサーバ上で動作しているWebサービスAPIを介してのような他のソースからデータを取得することも可能である。モデルはまた、適切な場合に、データベースを更新する役割があります。モデルには、どのようにデータの詳細を得られるか、または修正されるかの詳細からコントローラとビューを分離する役割があります。

ビューには、コンポーネントによって、ブラウザーに送信される出力を生成するための役割があります。フォーマットする必要なあらゆる情報をモデルが呼び出し、適切にフォーマットします。例えば、モデルから取り出されたデータアイテム一覧はビューに寄ってHTMLテーブルでラップされます。

Joomlaは高度なモジュールであるように設計されているので、コンポーネントからの出力は、一般に、ユーザが最終的に表示される完全なWebページの一部のみです。いったんビューが出力を生成すると、コンポーネントはJoomlaフレームワークに制御を返し、それからテンプレートを読み込んで表示します。テンプレートは、コンポーネント、現在の異ページのアクティブなモジュールから出力を組み合わせ、単一ページとしてブラウザに配信されます。

唯一の新しいデザインを作成するのではなく、基礎となるコードを操作に関係するWebデザイナーへの追加的なパワーと柔軟性を提供するために、 Joomlaは、ビューとレイアウトに伝統的なビューを分割します。ビューは、従来のMVCパターンのように、モデルからデータを引き出しますが、その後は単にユーザに表示するためにデータをフォーマットする役割があるレイアウトに利用可能なデータを作成します。この分割すること利点は、Joomlaのテンプレートシステムがテンプレートでオーバーライドされるレイアウトの簡単なメカニズムを提供することです。これらのレイアウトのオーバーライド(実際にそれが上書きされているレイアウトですが、 これらはテンプレートの一部を形成するのでしばしば「テンプレートオーバーライド」呼ばれます。)は、テンプレートにバンドルされており、テンプレートデザイナは、JoomlaコアおよびMVCデザインパターンに準拠してインストールされたサードパーティのエクステンションからのすべての出力を完全に制御することができます。



参照

コンポーネント開発シリーズ

J3.xのMVCコンポーネント開発

3.x系のMVC開発入門

J2.5のMVCコンポーネント開発

2.5系のMVC開発入門