คำถามติดแท็ก service-contract

3
วิธีการใช้สัญญาบริการสำหรับโมดูลที่กำหนดเองใน Magento 2
เท่าที่เห็นในโพสต์นี้: เลิกบันทึกและวิธีการโหลดนามธรรมรุ่นsaveและloadวิธีการเลิกใช้ในวีโอไอพี 2 พัฒนาสาขา ดังนั้นแนวปฏิบัติที่ดีในขณะนี้คือการใช้สัญญาบริการเพื่อจัดการกับหน่วยงาน CRUD กระบวนการทีละขั้นตอนที่ฉันต้องทำเพื่อใช้สัญญาบริการสำหรับหน่วยงานโมดูลที่กำหนดเองของฉันคืออะไร หมายเหตุ: ฉันรู้ว่าอาจมีหลายพันวิธีในรุ่น CRUD ของฉันฉันแค่ขอวิธีการที่ชัดเจนตามที่ระบุไว้ที่นี่: http://devdocs.magento.com/guides/v2.0/extension-dev-guide /service-contracts/design-patterns.html : get save getList delete deleteById

2
Magento 2 - เพราะเหตุใด Magento \ Checkout \ Model \ Cart เลิกใช้แล้ว
ตั้งแต่ Magento 2.1 รถเข็นมี@deprecatedแท็ก อย่างไรก็ตามวีโอไอพีเองก็ยังใช้เพื่อเก็บสินค้าเมื่อซื้อ การคัดค้านมีวัตถุประสงค์และถ้าเป็นเช่นนั้นและเราควรใช้อะไรแทน

3
มีเหตุผลใดที่จะชอบ $ model-> load () มากกว่าสัญญาบริการหรือไม่?
ฉันเข้าใจว่าวิธีที่ต้องการใช้ระหว่างโมดูลใน Magento 2 คือการใช้สัญญาบริการ ดังนั้นถ้าฉันต้องการโหลดผลิตภัณฑ์ฉันใช้ที่เก็บผลิตภัณฑ์: $product = $productRepository->getById($id); Magento\Catalog\Api\Data\ProductInterfaceซึ่งเป็นตามสัญญากลับตัวอย่างของ แต่ฉันสามารถใช้วิธีเดิมแทนการเรียกเลเยอร์โดเมนโดยตรง: $product = $productFactory->create()->load($id); มีกรณีใดบ้างที่จำเป็นหรือมีประโยชน์? devdocs พูด (เน้นเพิ่ม): โมดูลสามารถโทรเข้าสู่โมดูลอื่นโดยตรง โซลูชั่นนี้คู่แน่นไม่แนะนำสำหรับสถานการณ์ส่วนใหญ่ แต่บางครั้งก็หลีกเลี่ยงไม่ได้ [ ... ] กลยุทธ์ของคุณสำหรับการเรียกรหัสโดเมนของโมดูลอื่นนั้นขึ้นอยู่กับการกำหนดค่าและความต้องการของระบบของคุณเป็นพิเศษ ที่มา: http://devdocs.magento.com/guides/v2.0/architecture/archi_perspectives/domain_layer.html และความคิดเห็นเกี่ยวกับคำถามที่เกี่ยวข้องระบุไว้: การใช้พื้นที่เก็บข้อมูลจะทำให้คุณมีแบบจำลองข้อมูลผลิตภัณฑ์( Api/Data/Product) ซึ่งเป็นรูปแบบผลิตภัณฑ์ที่ถูกแปลงเป็น DTO ที่ล้าสมัย สิ่งที่ควรพิจารณาเนื่องจากมันค่อนข้างแตกต่างกัน แต่เท่าที่ฉันสามารถเห็นวัตถุเหมือนกันภายใต้สภาวะปกติเพียงแค่ชนิดส่งคืนต่อ phpDoc แตกต่างกัน ( Magento\Catalog\Api\Data\ProductInterface/ Magento\Catalog\Model\Product)

4
Magento 2: สัญญาบริการคืออะไร
ใน Magento 2 มีตัวอย่างที่ชัดเจนของสิ่งที่สร้างขึ้นโดยใช้แนวคิดสัญญาบริการหรือไม่ ฉันเคยเห็นคำนี้โยนไปมามากมาย แต่การดู Magento 2 ตามที่มีอยู่ตอนนี้มันยังไม่ชัดเจนสำหรับฉันถ้าสัญญาการบริการนั้นเป็นแนวทางที่มีหลักการมากขึ้น

3
Magento 2: การใช้สัญญาบริการมีประโยชน์อย่างไร?
ดังที่บางคนอาจจะรู้วิธีที่วีโอไอพี 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 ดังนั้นคำถามของฉันคือประโยชน์ของการใช้สัญญาบริการกับโรงงานมีอะไรบ้าง

2
Magento 2 และสัญญาการบริการ
ฉันรู้ว่ามีคำถามมากมายเกี่ยวกับคำถามนี้ แต่ฉันไม่แน่ใจว่าจะเข้าใจอย่างชัดเจน .. เราต้องใช้สัญญาบริการเมื่อใด พวกเขาเปลี่ยน CRUD ทำโดย Model/ ResourceModel? เราจำเป็นต้องสร้างสัญญาบริการสำหรับแต่ละเอนทิตีซึ่งจะใช้ตารางข้อมูลในโมดูลที่กำหนดเองทุกครั้งหรือไม่ พวกเขาน่าสนใจสำหรับการพัฒนาในอนาคตหรือไม่ เหตุใด Magento จึงใช้save/ loadจาก Model ใน Controller / Block และบางครั้งไม่ ขอบคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.