Shopware Platform | Verzeichnisstruktur

Willst du etwas verstehen, beschreibe es! Das ist ein Grundpfeiler dieses Blogs, neben dem Hauptgrund der Wissensvermittlung und Fame 😛 Spass beiseite – in diesem Beitrag geht es um die neue Ordnerstruktur von Shopware 6 (?)

Symfony

Shopware setzt wie schon oft angekündigt, eeeeendlich auf einen Fullstack von Symfony. Das heißt Ade Zend und hoffentlich auch Enlight.

Die meisten von euch haben sicher schon einmal mit Symfony gearbeitet und ich gehe hier von Grundkenntnissen aus. Falls nicht – probieren! Das beliebteste und innovativste PHP Framework (in meinen Augen).

By the way – wenn Ihr an einer englischen Version interessiert seid -> Shopware Doku

Zwecks SEO, Verständnis und Zusammenfassung verfasse ich das ganze nochmal gekürzt. Wichtig dabei zu verstehen ist, dass Shopware nun in zwei große Teilbereiche geteilt wird Development und Platform.

Development

Plugin Entwicklung

Hier ändert sich nicht viel für euch custom/plugins/

Snippets

Im scr/ Ordner könnt Ihr Code unterbringen den Ihr außerhalb des Plugin-Scopes braucht. Was genau das sein könnte werden wir noch herausfinden.

Assets

Wie in Symfony üblich liegen eure JS/CSS/MEDIA Dateien im public/ Ordner und sind frei im Web erreichbar.

Public Ordner

Deployment

Endlich gibt es einen offiziellen Ordner für Deployments, Entwicklung und CI. Daumen nach oben. Dort befinden sich alle Scripte die Ihr mit ./psh.phar aufgelistet bekommt.

Platform

Hier wird es interessant. In der Platform findet sich der Core (inklusive API), die Dokumentation, die Storefront (PHP) und die Adminstration (ehemals Backend – jetzt in Vue.JS)

Die einzelnen Komponenten Administration und Storefront haben getrennte Einstiegspunkte (Adminstration.php etc.) aber nutzen den Core als Ressource. Interessant ist der Ansatz die Dokumentation mitzuliefern, bin gespannt ob das auch im Major Release einen Platz hat – wäre cool wenn man das als Admin zur Verfügung hat.

Core

Der Core Ordner hat checkout, content und system als Hauptsektionen aufgeteilt. Dort findet Ihr die jeweiligen Module wie z.B. den Warenkorb, Kunden etc.

Ein weiterer wichtiger Ordner ist hier Framework – ich würde Ihn vermutlich mit dem alten engine/Shopware Ordner in Shopware 5.5 vergleichen.

Administration

Die Administration ist ja bekanntlich in Vue.js geschrieben – nur der Wrapper dafür in PHP, dieser lädt eine einfache Twig Datei welche die Basis bildet. Den Code zum ExtJS findet… ähhh Vue.js findet Ihr unter platform/src/Administration/Resources/administration

Storefront

Framework

Seo Kram, Routing und den Maincontroller für das Frontend findet Ihr hier.

Page & Pagelet

Die Storefront rendert vollständige HTML-Seiten. Die Seiten und ihre Bestandteile findet Ihr hier.

PageController & PageletController

Controller die am rendern und Requests verarbeiten (index/login etc. pp.) Ehemals in /engine/Shopware/Controllers/Frontend/ zu finden.

Ressourcen

Vergleichbar mit dem themes/ Ordner in Shopware 5 werden hier statt tpl (Smarty) hier nun twig Template Dateien untergebracht. Außerdem dazu noch .scss/Sass Dateien die für das Styling verantwortlich sind. Finde ich auch gut, denn ich konnte mich nie zu 100% mit Less anfreunden.

Fazit

Wow – das ist eine Menge! Abstraktion in allen Ehren, dass muss man erstmal sacken lassen. Ich denke es dauert eine Weile bis man sich an die Struktur gewöhnt hat. Ich werde vermutlich bald mal eine komplette debugging Session starten und einige Requests mal vom Kernel mit Step Over anschauen.. Was interessiert euch mehr, die Administration, der Core, die API im Core? Gerne als Kommentar in den Beitrag schreiben, ich gehe gerne auf Wünsche ein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.