Magento 2: सेवा अनुबंधों का उपयोग करने के क्या लाभ हैं?


15

तो जैसा कि आप में से कुछ लोग जानते हैं, Magento 2 ने CRUD क्रियाओं के लिए मॉडल / संग्रह से निपटने के लिए सेवा अनुबंधों का उपयोग करने का तरीका सुझाया है।

लेकिन अभी भी Magento SE Q & A के अनुसार ऐसा लगता है कि ज्यादातर लोग इसके बजाय सीधे मॉडल / संसाधन मॉडल / संग्रह का उपयोग करते हैं।

एक उद्धरण को लोड करने के लिए एक उदाहरण के रूप में मैं इसे सीधे कारखाने के माध्यम से इस तरह कर सकता हूं:

$this->quoteFactory->create()->load($quoteId);

कहाँ $this->quoteFactoryका एक उदाहरण है\Magento\Quote\Model\QuoteFactory

लेकिन मैं इसे इस तरह से सेवा अनुबंध के माध्यम से भी कर सकता हूं:

$this->quoteRepository->get($quoteId);

कहाँ $this->quoteRepositoryका एक उदाहरण है\Magento\Quote\Api\CartRepositoryInterface

तो मेरा सवाल यह है कि कारखानों पर सेवा अनुबंधों का उपयोग करने के क्या लाभ हैं?

जवाबों:


18

सेवा अनुबंधों का उपयोग करने का लाभ, (मैगेंटो 2 समझ के अनुसार)

सेवा अनुबंध में Magento 2 के लिए कई महत्वपूर्ण कार्य हैं, जैसे:

  • मॉड्यूल उन्नयन आसान हो गया है।

  • कोर फ़ाइलों में खुदाई के बिना मॉड्यूल के लिए अनुकूलन को सरल बनाएं।

  • सिस्टम में मॉड्यूल के बीच संघर्ष को कम करें।

  • Magento के उन्नयन सेवा अनुबंध का उपयोग कर सुरक्षित हैं।

  • सेवाओं के लिए इसके नए रिलीज के भीतर अपरिवर्तित रहेगा, भविष्य में अपग्रेड करना मौजूदा मॉड्यूल के लिए आसान है।

  • मॉडल / संग्रह के लिए यह मामला नई रिलीज़ के भीतर सही नहीं है।

2

सेवा अनुबंध के लाभ:

  • Magento की प्रतिरूपकता बढ़ाएँ

  • एक अच्छी तरह से परिभाषित, टिकाऊ एपीआई सुनिश्चित करें कि अन्य मॉड्यूल और तीसरे पक्ष के एक्सटेंशन को लागू कर सकते हैं

  • वेब एपीआई के रूप में सेवाओं को कॉन्फ़िगर करना आसान बनाएं।

  • डेटा इकाइयां अंतर्निहित रिलेशनल डेटाबेस स्कीमा में डेटा मॉडल की तुलना में एक सरल डेटा मॉडल प्रकट करती हैं

  • विभिन्न डेटा संग्रह के लिए विभिन्न भंडारण तकनीकों का उपयोग करें


2

मुझे लगता है कि सबसे बड़ा लाभ यह है कि मॉड्यूल यह निर्धारित कर सकते हैं कि किस कार्यक्षमता का उपयोग अन्य मॉड्यूल द्वारा किया जा सकता है। Magento 1 में आपके पास मददगार थे जहां अक्सर इस उद्देश्य के लिए दुरुपयोग किया जाता है (लेकिन यह एक पूरी तरह से चर्चा में है), लेकिन Magento 2 में आपका मॉड्यूल अन्य मॉड्यूल को कार्यक्षमता प्रदान कर सकता है (उदाहरण के लिए 3 पार्टी डेवलपर्स) और इसे अलग कर दिया है और स्वयं -contained।

निर्भरता इंजेक्शन एक प्रणाली प्रदान करता है जहाँ आप अपने निर्माण में एक इंटरफ़ेस का उपयोग कर सकते हैं ताकि आपके पास केवल उन सार्वजनिक तरीकों तक पहुंच हो।

कुछ उदाहरण:

एक उत्पाद को कई श्रेणियों से जोड़ना चाहते हैं? उपयोग करें \Magento\Catalog\Api\CategoryLinkManagementInterface:

$this->categoryLinkManagement->assignProductToCategories(
    $sku,
    $categoryIds
);

उत्पादों की स्टॉक मात्रा बढ़ाना चाहते हैं? उपयोग करें Magento\CatalogInventory\Api\StockManagementInterface:

$this->stockManagement->backItemQty(
    $productId,
    $itemsToReceive
);

ये दो उदाहरण पूरी तरह से सेवा अनुबंधों के उचित उपयोग को दर्शाते हैं। इसके अलावा, वे एक समान इंटरफ़ेस प्रदान करते हैं:

  • अन्य मॉड्यूल (जैसा ऊपर वर्णित है)
  • कंसोल कमांड्स
  • एपीआई कॉल
  • आदि।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.