Shopware Data Abstraction Layer (DAL)
Was ist ein Data Abstraction Layer?
Mit Shopware 6 kam der neue Data Abstraction Layer (DAL) hinzu, Shopwares eigene entwickelte Abstraktionsschicht.
Durch die neue Entwicklung hat man Zugriff auf alle notwendigen Daten einer Datenbank.
Egal ob es um das Thema performantes Auslesen oder das schnelle und sichere Hinzufügen von Datensätzen sowie das einfache Verändern der Datensätze geht, hierbei hilft dir der DAL.
Entity?
Ein Entity stellt die Daten, einer einzelnen Zeile einer Datenbanktabelle zur Verfügung. Ein Entity kann auch verknüpfte Daten enthalten. Dies kann man zum Beispiel bei einem ProductEntity sehen. Bei diesem ist nicht nur das Produkt da, sondern auch der Hersteller verfügbar.
Der Data Abstraction Layer liefert Standardlösungen für die Übersetzbarkeit von Entities, Versionierung und eine automatische Integration der eigenen API. Durch diese Standardlösung wird ein Entity, welches man komplett definieren und konfigurieren kann, direkt in der API komplett nutzbar gemacht.
Die Zuständigkeit kann man durch den DAL trennen, dass bedeutet anhand der Anwendungsfälle, die eine Datenschicht aufweist kann man jeweils eine andere Implementierung angesprechen.
Es gibt jeweils eine Implementierung für einen Writer, Reader, Searcher und Aggregation. Dadurch muss die darunterliegende Storage-Engine nicht dieselbe sein.
Wenn Sie etwas über DAL-Suche suchen, bekommen Sie eine Sammlung an Daten zurück, die Sie zum Beispiel nach bestimmten Kriterien sortieren können. Des Weiteren bekommen Sie Metainformationen basierend auf der Suche zurück.
Wie bei Doctrine ORM ist der zentrale Zugriffspunkt das Repository. Dies benutzt man, um mit der hinterlegte Storage-Engine zu kommunizieren. Das Repository beinhaltet alle Basismethoden. Dadurch kann mit den gespeicherten Daten arbeiten.
Um das Verarbeiten innerhalb Shopwares einfacher zu machen, löst jeder DAL-Request ein eigenes Event aus. Egal was Sie machen ob Daten auslesen oder Daten hinzufügen, alles löst ein eigens Event aus, welches Shopware verarbeiten kann.
Anlegen einer Datenbanktabelle
Um in Shopware 6 eine neue Datenbanktabelle per Plug-in zu erstellen benötigen Sie 3 Dateien.
- In der ersten Datei wird die Datenbanktabelle mit einem SQL Code erstellt.
- Um diese Tabelle nun nutzbar für Data Abstraction Layer zu machen, benötigen wir eine weitere Datei.
- Als Drittes wird noch eine Entity Datei benötigt um, die mit den Abfrageergebnissen arbeiten zu können. Diese Datei ist aus Doctrine schon gut bekannt.
Weitere Möglichkeiten werden wir dann in laufe der Zeit herausfinden und Sie hier Vorstellen.
Dein Kommentar
An Diskussion beteiligen?Hinterlassen Sie uns Ihren Kommentar!