Magento2 Service contracts 服務合同

服務合同

Magento是一個模塊化系統,它使第三方開發人員可以定製和覆蓋其框架的核心部分。然而,這種靈活性是有代價的。html

業務邏輯傾向於泄漏Magento系統的各個層,這表現爲重複且不一致的代碼。web

商家可能不肯意升級Magento,由於他們購買的自定義擴展程序可能與新版本的Magento不兼容。此外,Magento和第三方開發人員發現很難跟蹤和報告自定義擴展在其餘擴展上的依賴關係。數據庫

爲了解決這些問題,Magento系統引入了服務合同。json

什麼是服務合同?

 服務合同 是一組 PHP 中針對定義的接口 模塊 。服務合同包括保持數據完整性的數據接口服務接口服務接口隱藏服務請求者(如控制器,Web服務和其餘模塊)的業務邏輯細節。設計模式

若是開發人員根據一組設計模式定義數據和服務接口,那麼結果就是一個定義明確,持久的 API ,其餘模塊和第三方擴展能夠經過Magento模型和資源模型實現。api

 

 

服務合同利益

服務合同加強了Magento的模塊化。它們使Magento和第三方開發人員可以經過composer.json文件報告系統依賴性,從而保證Magento版本之間的兼容性。這種兼容性確保商家能夠輕鬆升級Magento。composer

這些合同確保了其餘模塊和第三方擴展能夠實現的定義明確,持久的API。此外,這些合同使得將服務配置爲Web API變得容易框架

數據實體是服務合同的附帶好處。一般支持這些實體的數據庫表可能很複雜。例如,某些屬性可能存儲在EAV表中,所以一組MySQL數據庫表可能定義單個數據 實體 。服務合同中的數據實體顯示比底層關係數據庫模式中的數據模型更簡單的數據模型最終,您將可以針對不一樣的數據集合使用不一樣的存儲技術。例如,您能夠使用NoSQL數據庫替換產品表。ide

 

使用@api標籤

能夠經過使用來指示向後兼容性@api有關更多信息,請參閱向後兼容性模塊化

相關文章
相關標籤/搜索