मुझे पता है कि Magento 2 ने डेटा मॉडल को सेवा अनुबंध वास्तुकला के हिस्से के रूप में पेश किया है। डेटा मॉडल आमतौर पर एक मॉड्यूल के एपीआई / डेटा / में परिभाषित इंटरफेस को लागू करते हैं।
लेकिन, लगता है कि Magento ने पुराने मॉडल को भी बनाए रखा है।
चलो मॉड्यूल-ग्राहक के लिए एक उदाहरण लेते हैं।
- Api / Data / CustomerInterface.php में परिभाषित डेटा मॉडल इंटरफ़ेस
- उपरोक्त इंटरफ़ेस मॉडल / डेटा / Customer.php में लागू किया गया है
- डेटा मॉडल में ग्राहक चर के लिए सभी गेट्टर और सेटर फ़ंक्शन होते हैं, जैसा कि कोई अपेक्षा करता है
- उपरोक्त के अलावा एक मॉडल / Customer.php भी है। यह भी गेट्टर और सेटर फ़ंक्शन है। यह एक Magento 1 मॉडल की तरह है जो संसाधनमॉडल (मॉडल / ResourceModel / Customer.php) से जुड़ता है
- मॉडल / ResourceModel / CustomerRepository.php में, विभिन्न फ़ंक्शन मैग्नेटो 1 मॉडल से डेटा एकत्र करते हैं, उन्हें डेटा मॉडल में स्थानांतरित करते हैं, और फिर डेटा मॉडल वापस करते हैं।
पुराने मॉडल की आवश्यकता क्यों है? डेटा मॉडल सीधे संसाधनमॉडल से क्यों नहीं जुड़ सकता है?
\Magento\Customer\Api\Data\CustomerInterface
REST / SOAP API (यदि सक्षम है) के लिए सभी विधियाँ उजागर हैं। हालाँकि, आपको यह चुनने के लिए डेटा मॉडल की आवश्यकता नहीं है कि कौन सी विधियाँ उजागर हुई हैं, क्योंकि आप इंटरफ़ेस को इसके बजाय 'वास्तविक' मॉडल से जोड़ सकते हैं। इस तरह से यह किया गया है\Magento\Catalog\Model\Product
और\Magento\Catalog\Api\Data\ProductInterface