Vinai Kopp hat kürzlich eine schöne Graphik auf Twitter online gestellt:
Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf den Button unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Das Diagramm fasst wichtiges Basis-Wissen zusammen, wie Models in der Datenschicht von Magento 2 zusammenarbeiten:
- Repositories und Daten-Objekte bilden zusammen die Geschäftslogik ab.
Damit andere Module diese Geschäftslogik verlässlich verwenden können (auch über mehrere Modul-Versionen hinweg), definiert das Modul einen „Service Contract“, ein öffentliches API. - Das ORM-Model, das Resource-Model und die Collections sind für objekt-relationales Mapping („ORM) zuständig.
ORM ist die Übersetzung von objekt-orientierten Datenstrukturen in relationale Datenstrukturen, wie sie in klassischen Datenbanksystemen vorkommen. Hier wird keine Business-Logik eingebaut.
Für Model, Resource-Model und Collection existieren abstrakte Klassen. Sie ersparen Arbeit, wenn man die konkrete Implementierung eines Models, eines Resource-Models bzw. einer Collection vornimmt. - Die eigentliche Daten-Speicherung übernimmt die Datenbank-Abstraktionsschicht. Nur das Resource-Model und die Collection haben eine Verbindung zur Abstraktionsschicht. Und nur die Abstraktionsschicht kann mit dem eigentlichen Datenbank-Adapter kommunizieren, der die „Sprache“ des verwendeten Datenbank-Systems spricht. Im Fall von Magento 2 ist das aktuell MySQL.
Danke an Vinai dafür, dass er das Diagramm angefertigt hat und es in der Public Domain bereitstellt!


