Magento 2はモデルビューであり、モデルシステムを表示し、MVCではありません–説明

公開: 2017-10-04

Magento 2のリリースにより、開発者がWebサイトのコードを計画および作成する方法が大幅に変更されました。 Magentoは、世界中の何千ものマーチャントに完璧なeコマースプラットフォームを提供し、より多くのユーザーに製品を簡単に提供できるようにしています。 Magento 2は、商人が長い間使用している優れたアーキテクチャと一致しています。

たとえば、オンラインで眼鏡を購入できるGlassesUSA.comなどの主要なeコマースプラットフォームでは、Magentoを使用しています。 GlassesUSAのチームによると、Magentoは、日々進化する多様なビジネス要件に合わせてWebサイトを簡単に拡張できるようにしています。 市場のダイナミクスの変化と顧客の基盤の拡大に伴い、Magentoの採用は最も重要な決定の1つです。 これはプラスの影響を及ぼし、Webサイトのメンテナンスのためのダウンタイムをほぼゼロに減らしました。 ビジネスの継続性やユーザーエクスペリエンスを妨げることなく、ウェブサイトに必要な変更を反映するようにモジュールを追加または変更するだけです。

Magentoのアーキテクチャ設計は、開発者がビジネス固有のニーズに合わせて簡単にカスタマイズできる一種のソースコードを利用できるようにすることで作成されました。 開発者とマーチャントがモジュールを追加し、Magentoeコマーステーマの機能を拡張できるのはアーキテクチャの美しさです。

ほとんどのプラットフォームでは、最終製品をパーソナライズするためにコアコードを変更する必要がありますが、Magentoは一般的な問題をはるかに超えています。 Magentoプラグインをインストールすると、オプションや機能の追加が簡単になります。 たとえば、構造化されたスニペットを製品ページに追加する必要がある場合は、Magentoリッチスニペット拡張機能または同様のアプリケーションをインストールするだけで機能します。 コードを変更したり、追加の商品情報を各ランディングページに個別に挿入したりする必要はありません。

アーキテクチャ設計は、eコマースWebサイトの販売者と管理者が、新しい機能を簡単にカスタマイズ、更新、および追加できるようにするために役立ちます。 Magentoのメーカーについてコメントする前に、いくつかの建築モデルについて説明しましょう。

関連記事:Magento2で注文を編集および削除する方法

MVC(Model View Controller)モデル

MVCは、モデルを介してデータへのアクセスを分割し、ビューでフロントエンドを、コントローラーを介してビジネスロジックを区別する設計アプリケーションです。 このデザインパターンは、ユーザーインターフェイスをモデルから分離するために1970年代に導入されました。 MVCを組み込んだ結果、アプリケーションの修復、保守、およびテストが容易になります。 デザインパターンの中心的なテーマは、モデル、ビュー、コントローラーを含む3つのアーキテクチャの側面でアプリケーションを分割することです。

このモデルは、一連のクラスを通じてアプリケーションのビジネスロジックを象徴します。 データモデルでもビジネスモデルでもかまいません。 モデルは、データが変更、変更、または操作される方法も示します。

ビューは、ユーザーインターフェイスまたはアプリケーションのフロントエンドです。 これには、jQuery、CSS、HTMLなどのUIコンポーネントが含まれます。これは、アプリケーションのコントローラーから取得したデータを結果情報として表示します。 Viewは、ユーザーインターフェイスを使用してモデルを複製します。

コントローラは、アプリケーションがフロントエンドから取得する要求を処理する責任があります。 ビューを介してエンドユーザーから情報を取得し、モデルを介してデータを処理してから、それを超越してフロントエンド(ビュー)に戻します。 モデルとビューの間の橋のように機能します。

提案された投稿:Magento 2拡張機能をマーケットプレイスに送信するにはどうすればよいですか?

Model View ViewModel(MVVM)システム

MVVMは、プログラミングとソフトウェア開発で利用されるアーキテクチャパターンです。 システムは、ViewとViewModelの間にある双方向のデータバインディングメカニズムで動作します。 これにより、ViewModel内の変更を自動化してビューに表示することが簡単になります。

MVVMには、MVCに存在するのと同じように、モデルとビューがありますが、コントローラーはViewModelに置き換えられています。

Magento 2はMVVMシステムまたはMVCですか?

Magento 2は、モデルビュービューモデルシステムであり、MVCによって構造化されたデザインではありません。 MVCモデルは以前のバージョンに組み込まれており、MVVMと非常によく似ているようですが、MVVMは、アプリケーションでビューとモデルを分割するのにはるかに豊富です。

MVVMには、Model、View、およびViewModelを含む3つのレイヤーがあります。 拡張機能またはアプリケーションのビジネスロジックはモデルとして表されますが、フロントエンドはビューによって表されます。 コントローラーがMVCモデルのメディエーターとして機能するのと同じように、ViewModelはMVVMシステムのモデルとビューの間のギャップを埋めます。

Magento 2用に開発された拡張機能は、上記の基本的な設計要素で構成されていると言われています。 一方、コントローラーの役割は、ユーザーの要求に関するシステムの通信を含むユーザーフローの管理を担当するため、Magento2から完全に削除されるわけではありません。

例を使って同じことを説明しましょう。 例として、新しいURLを設定し、そのURLのphtmlテンプレートを作成してみてください。 Magento 2で新しいURLをリクエストすると、http://magento.abc.com/hi/friendのように、MVVMシステムは、MVCで行われるのと同じように、リクエストをコントローラーに送信して処理します。 ただし、MVVMのコントローラーの責任には大きな違いがあります。 責任を負います

  • 選択するページレイアウトの決定
  • ユーザーリクエストからのデータを保存するための管理
  • そして、HTTPで応答するようにシステムを通信するか、
  • ユーザーを次または前のページに誘導する

サンプルURLを設定すると、各ビューコンポーネントがモデルレイヤー、オブジェクト、または外部ソースからデータまたは情報自体を取得する責任があるため、ビューで単一の変数が言及されていないことに気付くのに役立ちます。 MVVMにより、MagentoはHTMLページをコンテナと呼ばれる複数のセクションに分割します。 これらのコンテナは、木のような構造で接続されたブロックを持っています。 ブロックには、phtmlテンプレートファイルがさらに含まれています。

MVVMシステムについて具体的に話す場合、MagentoブロックオブジェクトはViewModelとして機能します。 オブジェクトブロックは、ビジネスモデル、ユーザーリクエスト、外部システムからのデータの取得などをスキャンして読み取ることができます。テンプレートファイルはビューと呼ばれ、ビューモデルであるブロックオブジェクトとのみ連携します。

結論

Magento 2は、時間の必要性があったため、ModelViewViewModelシステムに移行するという決定を正しく下しました。 MVVMモデルは、テンプレートロジックをビジネスロジックから分割することで一歩前進します。 このシステムは、マーチャントとエンドユーザーを容易にするために確かに推測されますが、開発者は、Magento2とMVVMシステムを搭載したWebサイトの拡張機能のコーディングに最初に対処するのが難しいと感じるかもしれません。