Magento 2.1: menggunakan manajer entitas

27

Dari 2.1 Magento telah diperkenalkanMagento/Framework/Model/EntityManager

Saya mungkin salah di sini tetapi dari pemahaman saya itu adalah untuk mengganti Magento/Framework/Model/AbstractModelyang mengimplementasikan fitur melalui warisan dan menyelesaikannya melalui komposisi (FYI: https://en.m.wikipedia.org/wiki/Composition_over_inheritance )

Anda bisa mendapatkan contoh di sini di file inti: https://github.com/magento/magento2/blob/59671558ecdab652b40db2d1a7c63d5b1dea0a92/app/code/Magento/Cms/Model/ResourceModel/Block.php

Pada dasarnya semua operasi CRUD secara eksplisit dinyatakan di kelas dan ditangguhkan ke EntityManagerkelas. Sebelum 2.1, metode induk dipanggil melalui pewarisan.

Jadi pertanyaan saya adalah:

  • apa manfaat dariEntityManager sistem pewarisan 2.1?
  • apakah hanya mendeklarasikan metode CRUD (seperti contoh di atas) cukup untuk mulai mengimplementasikannya dalam modul CRUD khusus atau ada lebih banyak?
Raphael di Digital Pianism
sumber
1
Bukan jawaban - tapi saya akan membahayakan salah satu manfaat menggunakan EntityManager adalah kemampuan untuk injeksi sistem tipe Repository - di mana pemuatan mungkin terjadi dalam memori daripada memukul DB jika entitas telah ditarik ke dalam memori, dll.
Navarr

Jawaban:

16

Saat ini, kami tidak merekomendasikan untuk menggunakan EntityManager untuk entitas Anda karena ini adalah fitur yang belum selesai dan kami berencana untuk membuat konfigurasi lebih deklaratif.

Gagasan EntityManager adalah:

  • bolehkan Entitas Data dengan antarmuka (tidak perlu meluas dari kelas abstrak)
  • membuat diperpanjang terus-menerus eksplisit
  • modularitas
KAndy
sumber
Terima kasih untuk itu, bisakah Anda menambahkan jawaban Anda alasan mengapa Anda tidak merekomendasikan menggunakannya? (Fitur yang belum selesai, buggy, lainnya?)
Raphael di Digital Pianism
1
Ya, masa depan yang belum selesai, kami berencana untuk membuat konfigurasi lebih deklaratif
KAndy
4
XML Moar, MOAR! :)
nevvermind
Bisakah kita tahu tanggal yang diharapkan untuk menyelesaikan masa depan yang belum selesai ini?
Toan Nguyen
3
Karena simpanan Magento secara langsung dipengaruhi oleh umpan balik komunitas dan mitra, tugas apa pun dapat diprioritaskan dan diprioritaskan dan tidak ada yang tahu kapan tugas konkret akan selesai, sebelum dilakukan dan diterbitkan.
KAndy