Looking for magento Answers? Try Ask4KnowledgeBase
Looking for magento Keywords? Try Ask4Keywords

magentoMVC構造


備考

MVCはModel-View-Controllerの略です。データアクセス、ビジネスロジック、ユーザーインターフェイスを分けるアプリケーションはすべてMVCと呼ばれます。 MVCには、従来型と構成ベースの2種類があります。例として、cakePHPは慣例に基づいています。つまり、コアシステムの指示に従うだけで、数行でモジュールを準備できます。 Magentoは設定ベースです。つまり、動作させるためには、モジュールの設定ファイルにすべてのものを指定する必要があります。 Magentoにはコントローラ(ルーティング用)、ブロック、モデル、テンプレートファイルがあります。 MagentoのMVCの仕組み:

  1. URL( http://mysite.com/frontname/controller/method/param1/value1/param2/value2など)を入力すると、このURLはMagentoアプリケーションをインスタンス化するindex.phpという1つのPHPファイルによってインターセプトされます
  2. Magentoアプリケーションは、Front Controllerオブジェクトをインスタンス化します。
  3. さらに、フロントコントローラはルータオブジェクト(モジュールのconfig.xml、グローバルタグで指定されたもの)
  4. 今、ルータは、私たちのURLにあるフロントネームに "マッチ"する責任があります
  5. 「一致」が見つかった場合は、最後に呼び出されたURLにコントローラ名とメソッド名が表示されます。
  6. アクション名(メソッド名)に何が書かれているかによって、実行されます。モデルが呼び出された場合、コントローラメソッドはそのモデルをインスタンス化し、要求されたモデルを呼び出す。
  7. 次に、コントローラアクション(メソッド)は、このアクション(メソッド)名に指定されたブロックを呼び出すLayoutオブジェクトをインスタンス化します(各コントローラアクション名にはブロックとテンプレートファイルが関連付けられています。app / design / frontendまたはadminhtml / namespace / module / layout / module.xmlファイル、レイアウトファイル(module.xml)の名前は、そのモジュールのconfig.xmlのレイアウト更新タグにあります。
  8. テンプレートファイル(.phtml)は、どのメソッド要求に対しても対応するブロックを呼び出すようになりました。したがって、$ this-> methodNameを.phtmlファイルに記述すると、module.xmlファイルに関連付けられているブロックファイルの "methodName"がチェックされます。
  9. ブロックにはPHPロジックが含まれています。 DBからのデータのモデルを参照します。
  10. Block、TemplateファイルまたはControllerのいずれかがデータベースとの間でデータを取得または設定する必要がある場合、Mage :: getModel( 'modulename / modelname')のように直接Modelを呼び出すことができます。

MVC構造 関連する例