Saya tahu ada banyak topik tentang pertanyaan ini, tetapi saya tidak yakin untuk memahami dengan jelas ..
Kapan kita perlu menggunakan kontrak layanan?
- Apakah mereka mengganti CRUD yang dilakukan oleh
Model
/ResourceModel
? - Apakah kita perlu membuat setiap kontrak layanan untuk setiap entitas yang akan menggunakan tabel data pada modul khusus?
- Apakah mereka benar-benar menarik untuk pengembangan di masa depan?
- Mengapa Magento terkadang menggunakan
save
/load
dari Model di Controller / Block, dan terkadang tidak?
Terima kasih
magento2
custom
service-contract
crud
TaKe_Da_ShAkEr
sumber
sumber
Jawaban:
Pada dasarnya, kontrak layanan adalah seperangkat antarmuka yang tersedia untuk modul untuk mendeklarasikan API standar. Secara umum, ada dua kategori API, API data yang memperlihatkan metode CRUD, dan API operasional yang benar-benar melakukan sesuatu.
Kontrak layanan memenuhi sejumlah fungsi penting, seperti:
Sekarang, dengan penggunaan antarmuka dan API, jauh lebih jelas bagaimana berinteraksi dengan modul di sistem Magento yang lebih modular karena mereka hanya berkomunikasi melalui API
Semua kelas didokumentasikan melalui antarmuka mereka, sehingga Anda tahu persis apa yang dilakukan masing-masing dan bagaimana menggunakannya akan memengaruhi seluruh implementasi Anda.
Saya sangat merekomendasikan Anda untuk mengambil Magento Course Fundamentals of magento Development yang disediakan Magento gratis hingga 31/1/2017. Ini mencakup ikhtisar kontrak layanan lengkap dan beralih ke Framework API, Data API, dan API web
sumber
Kontrak Layanan sangat berguna di Magento2. Mereka menentukan dengan tepat bidang data apa yang Anda butuhkan untuk input. Karena Magento dikembangkan dengan cara yang mana kedua pengontrol, proses dan apis web mengkonsumsi repositori dan model yang sama, kontrak layanan membantu untuk membuat data menjadi sama di sepanjang semuanya. Ini juga berguna karena memberi Anda kesempatan untuk menyuntikkan pabrik dan hal-hal lain dengan mudah.
sumber