Magento 2.1: korzystanie z menedżera encji

27

Od 2.1 Magento wprowadziłoMagento/Framework/Model/EntityManager

Mogę się tutaj mylić, ale z mojego zrozumienia wynika, że ​​zastąpiłem Magento/Framework/Model/AbstractModelimplementację funkcji poprzez dziedziczenie i rozwiązałem ją poprzez kompozycję (FYI: https://en.m.wikipedia.org/wiki/Composition_over_inheritance )

Możesz znaleźć przykład tutaj w podstawowych plikach: https://github.com/magento/magento2/blob/59671558ecdab652b40db2d1a7c63d5b1dea0a92/app/code/Magento/Cms/Model/ResourceModel/Block.php

Zasadniczo wszystkie operacje CRUD są jawnie zadeklarowane w klasie i odroczone do EntityManagerklasy. Przed 2.1 metoda nadrzędna była wywoływana przez dziedziczenie.

Więc moje pytania to:

  • Jakie są zaletyEntityManager systemu dziedziczenia wcześniejszego niż 2.1?
  • czy po prostu deklarowanie metod CRUD (jak w powyższym przykładzie) jest wystarczające, aby rozpocząć implementację w niestandardowym module CRUD, czy jest ich więcej?
Raphael at Digital Pianism
źródło
1
Nie odpowiedź - ale zaryzykowałbym jedną z korzyści korzystania z EntityManager byłaby możliwość ewentualnego wstrzyknięcia systemu typu Repozytorium - w którym ładowanie mogłoby się zdarzyć w pamięci zamiast uderzać w DB, jeśli jednostka została już wciągnięta do pamięć itp.
Navarr,

Odpowiedzi:

16

Obecnie nie zalecamy używania EntityManager dla twoich encji, ponieważ jest to niedokończona funkcja i planujemy uczynić konfigurację bardziej deklaratywną.

Pomysły EntityManager to:

  • zezwalaj na trwałą jednostkę danych przez interfejs (nie ma potrzeby rozszerzania klas abstrakcyjnych)
  • uczynić trwałe wyraźne rozszerzalne
  • modułowość
KAndy
źródło
Dzięki za to, czy mógłbyś dodać do swojej odpowiedzi powód, dla którego nie zalecasz jej używania? (Niedokończona funkcja, buggy, inne?)
Raphael w Digital Pianism,
1
Tak, niedokończone kontrakty, planujemy uczynić konfigurację bardziej deklaratywną
KAndy
4
Moar XML, MOAR! :)
nevvermind
Czy moglibyśmy wiedzieć, jaka jest przewidywana data, kiedy skończą tę niedokończoną przyszłość?
Toan Nguyen,
3
Ponieważ zaległości Magento, na które bezpośrednio wpływa opinia społeczności i partnerów, każde zadanie może mieć priorytet i zostać zdepriorytetyzowane i nikt nie wie, kiedy konkretne zadanie zostanie ukończone, zanim zostanie wykonane i opublikowane.
KAndy,