モデル-ビュー-コントローラ
From Joomla! Documentation
Joomla はモデル-ビュー-コントローラ デザインパターンの使用を多用します。
Joomlaが特定のページをGETする、またはフォームからデータをPOSTする等、ユーザからの要求を処理し始める時、Joomla!がまず最初にすることはどのコンポーネントが要求に応じるかを決定するURLを解析します。そしてコンポーネントに制御を引き渡します。
コンポーネントがMVCパターンに沿って設計されている場合は、コントローラに制御を渡します。コントローラは要求の解析を解析し、どのモデルが要求を満たす必要があるか、どのビューをユーザに表示するかを決定する役割があります。
モデルは、コンポーネントによって使用されるデータをカプセル化します。ほとんどの場合、このデータはJoomlaのデータベース、またはいくつかの外部データベースのいずれかから来るが、モデルが別のサーバ上で動作しているWebサービスAPIを介してのような他のソースからデータを取得することも可能である。モデルはまた、適切な場合に、データベースを更新する役割があります。モデルには、どのようにデータの詳細を得られるか、または修正されるかの詳細からコントローラとビューを分離する役割があります。
ビューには、コンポーネントによって、ブラウザーに送信される出力を生成するための役割があります。フォーマットする必要なあらゆる情報をモデルが呼び出し、適切にフォーマットします。例えば、モデルから取り出されたデータアイテム一覧はビューに寄ってHTMLテーブルでラップされます。
Since Joomla is designed to be highly modular, the output from the component is generally only part of the complete web page that the user will ultimately see. Once the view has generated the output, the component hands control back to the Joomla framework which then loads and executes the template. The template combines the output from the component, and any modules that are active on the current page, so that it can be delivered to the browser as a single page.
唯一の新しいデザインを作成するのではなく、基礎となるコードを操作に関係するWebデザイナーへの追加的なパワーと柔軟性を提供するために、 Joomlaは、ビューとレイアウトに伝統的なビューを分割します。ビューは、従来のMVCパターンのように、モデルからデータを引き出しますが、その後は単にユーザに表示するためにデータをフォーマットする役割があるレイアウトに利用可能なデータを作成します。この分割すること利点は、Joomlaのテンプレートシステムがテンプレートでオーバーライドされるレイアウトの簡単なメカニズムを提供することです。これらのレイアウトのオーバーライド(実際にそれが上書きされているレイアウトですが、 これらはテンプレートの一部を形成するのでしばしば「テンプレートオーバーライド」呼ばれます。)は、テンプレートにバンドルされており、テンプレートデザイナは、JoomlaコアおよびMVCデザインパターンに準拠してインストールされたサードパーティのエクステンションからのすべての出力を完全に制御することができます。