Magento 2 是模型視圖,視圖模型系統而不是 MVC – 解釋
已發表: 2017-10-04Magento 2 的發布徹底改變了開發人員為網站規劃和編寫代碼的方式。 Magento 正在為全球成千上萬的商家提供一個完美的電子商務平台,以便輕鬆地將他們的產品展示給更廣泛的受眾。 Magento 2 與商家長期以來使用的卓越架構保持一致。
例如,可以在線購買眼鏡的領先電子商務平台 GlassesUSA.com 正在使用 Magento。 GlassesUSA 的團隊表示,Magento 已使其網站易於擴展,以適應每天都在發展的各種業務需求。 隨著不斷變化的市場動態和不斷擴大的客戶群,採用 Magento 已成為最重要的決定之一。 這產生了積極的影響,並將他們的網站維護停機時間減少到幾乎為零。 他們只需要添加或修改一個模塊以反映其網站所需的更改,而不會妨礙業務連續性或用戶體驗
Magento 的架構設計是由開發人員創建的,它提供了一種可以根據業務特定需求輕鬆定制的源代碼。 正是架構之美允許開發人員和商家添加模塊並擴展 Magento 電子商務主題的功能。
大多數平台都需要修改核心代碼來個性化最終產品,但 Magento 遠遠超出了常見問題。 通過安裝 Magento 插件可以更輕鬆地添加選項或功能。 例如,如果您需要將結構化片段添加到產品頁面,只需安裝 Magento 豐富片段擴展或類似應用程序即可完成工作。 無需更改代碼並將其他產品信息分別注入每個著陸頁。
架構設計有利於電子商務網站的賣家和管理員輕鬆定制、更新和添加新功能。 在評論 Magento 的產品之前,讓我們先討論一些架構模型。
相關文章:如何在 Magento 2 中編輯和刪除訂單
MVC(模型視圖控制器)模型
MVC是一個設計應用,通過模型來拆分數據的訪問,通過視圖來區分前端,通過控制器來區分業務邏輯。 這種設計模式是在 1970 年代引入的,用於將用戶界面與模型分離。 在 MVC 合併的結果中,修復、維護和測試應用程序變得更加容易。 設計模式的核心主題是將應用程序劃分為三個架構方面,包括模型、視圖和控制器。
該模型通過一組類來象徵應用程序的業務邏輯。 它可以是數據模型或業務模型。 模型還顯示了修改、更改或操作數據的方式。
視圖是用戶界面或應用程序的前端。 這包括 jQuery、CSS、HTML 等 UI 組件。它將從應用程序控制器獲取的數據顯示為結果信息。 View 使用用戶界面複製模型。
控制器負責處理應用程序從前端獲得的請求。 它通過 View 從最終用戶那裡獲取信息,通過 Model 處理數據,然後將其超越返回到前端(視圖)。 它就像模型和視圖之間的橋樑。
建議的帖子:如何向市場提交 Magento 2 擴展?
模型視圖 ViewModel (MVVM) 系統
MVVM 是一種用於編程和軟件開發的架構模式。 該系統工作在 View 和 ViewModel 之間的雙向數據綁定機制上。 這簡化了 ViewModel 中的自動更改以將其顯示在 View 中。

MVVM 具有模型和視圖,就像它們在 MVC 中的存在方式一樣,但是控制器被 ViewModel 替換。
Magento 2 是 MVVM 系統還是 MVC?
Magento 2 是一個模型視圖 ViewModel 系統,不再是由 MVC 結構化的設計。 MVC 模型是在之前的版本中加入的,看起來和 MVVM 很相似,但是 MVVM 是一種在應用程序中劃分 View 和 Model 的方式更加豐富。
MVVM 具有三層,包括模型、視圖和視圖模型。 擴展或應用程序的業務邏輯由模型表示,而前端由視圖表示。 就像控制器在 MVC 模型中充當中介的方式一樣,ViewModel 彌合了 MVVM 系統中的模型和視圖之間的差距。
據說為 Magento 2 開發的擴展包含上面討論的基本設計元素。 然而,控制器的角色並沒有從 Magento 2 中完全刪除,因為它負責管理用戶流程,包括就用戶的請求向系統傳達信息。
讓我用一個例子來解釋一下。 作為示例,您可以嘗試設置一個新 URL 並為其創建一個 phtml 模板。 當您在 Magento 2 中請求新的 URL 時,例如 http://magento.abc.com/hi/friend,MVVM 系統會將請求發送到控制器以處理它,就像在 MVC 中完成的方式一樣。 但是,MVVM 中控制器的職責有很大的不同。 它負責
- 確定要選擇的頁面佈局
- 管理以保留來自用戶請求的數據
- 並且,要么與系統通信以使用 HTTP 響應,要么
- 將用戶引導至下一頁或上一頁
設置示例 URL 將幫助您注意到 View 中沒有提及單個變量,因為每個 View 組件都負責從模型層、對像或外部源獲取數據或信息本身。 MVVM 使 Magento 將 HTML 頁面拆分為多個稱為容器的部分。 這些容器擁有通過樹狀結構連接的塊。 這些塊還包括一個 phtml 模板文件。
如果您專門談論 MVVM 系統,Magento 塊對象充當 ViewModel。 對象塊能夠掃描和讀取業務模型、用戶請求、從外部系統獲取數據等。模板文件稱為視圖,它與視圖模型的塊對象單獨協作
結論
Magento 2 正確地做出了遷移到 Model View ViewModel 系統的決定,因為這是當務之急。 MVVM 模型在將模板邏輯與業務邏輯分開方面領先一步。 該系統肯定會為商家和最終用戶提供便利,而開發人員可能會發現最初很難為由 Magento 2 和 MVVM 系統提供支持的網站編寫擴展程序。