Shopware 6 programmieren lernen

Du möchtest Shopware 6 programmieren lernen? Auf dieser Seite sammle ich eigene Erfahrungen und Tipps sowie Links zu anderen Seiten und Tutorials, die dabei helfen.

Zuerst findest du einige Grundlagen. Dann gehe ich auf Themen in alphabetischer Reihenfolge ein. Am Ende findest du weiterführende Links zu anderen Seiten, auf denen du dich informieren kannst.

Grundlagen

Nötiges Vorwissen

Wenn du Backend-Programmierung für Shopware 6 lernen möchtest, solltest du bereits mit objektorientierter Programmierung in PHP vertraut sein. Hast du früher mit alten PHP-Versionen gearbeitet, dann mache dich mit den großen Verbesserungen vertraut, die mit den PHP-Versionen 7.0 bis 7.4 eingeführt wurden. Außerdem solltest du wichtige Programmier-Prinzipien und Design Patterns wie Dependency Injection kennen.

Wenn du Frontend-Programmierung machen möchtest, solltest du bereits wissen, wie man modernes HTML, CSS und JavaScript schreibt.

Wichtige Prinzipien

Verinnerliche:

  • Shopware 6 baut mit Symfony, Twig, jQuery und Bootstrap auf populären Frameworks auf.
  • Findest du keine Antworten auf deine Fragen zu Shopware 6, dann findest du deswegen vielleicht passende Antworten, wenn du deine Suche direkt in Kombination mit diesen Frameworks startest.
  • Beschäftige dich mit dem Grundaufbau des Codes. Finde heraus, wo Shopware 6 den Standard dieser Frameworks verwendet, wo es darauf aufbaut und es erweitert, und wo es von diesen Standards abweicht.
  • Shopware 6 sieht sich als „API-first“. Versuche selbst, so zu denken: Erstelle Funktionalitäten möglichst als (REST-)API, welche von anderen verwendet werden kann – selbst wenn das nur du in ein paar Wochen in einem anderen Ticket bist.

Build und Deployment

Über die Umgebungsvariablen SHOPWARE_ADMIN_BUILD_ONLY_EXTENSIONS und DISABLE_ADMIN_COMPILATION_TYPECHECK kann man die Zeit zum Bauen von Plugin-Assets für den Administrationsbereich stark beschleunigen.

Björn Meyer hat weitere Tipps zu Umgebungsvariablen im Build-Prozess, zum Beispiel PROJECT_ROOT, APP_URL, MODE und SHOPWARE_ES Variablen.

Coding Best Practices

Best Practices von Fabian Blechschmidt, zum Beispiel, wie man automatische Updates und den Admin Message Consumer deaktiviert.

Datenbank

Datenbank-Dump erstellen und einspielen

Wenn man einen Datenbank-Dump erstellen und einspielen möchte:

  • Mit diesem Skript von Kellerkinder kann man die Datenbank entsprechend DSGVO/GDPR exportieren.
  • Alternativ gibt es dieses Skript zum Dumpen, auch mit Möglicher Berücksichtigung von DSGVO/GDPR, von Winkelwagen.
  • Datenbank-Exporte und -Importe lassen sich nicht zwischen MySQL und MariaDB mischen, weil virtuelle Spalten unterschiedlich implementiert werden.

Erhältst du diese Fehlermeldung:

mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'database' AND TABLE_NAME = 'acl_role';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

Dann füge den Parameter --column-statistics=0 hinzu (Quelle).

Datenbanken synchronisieren

Mit diesem Tool für Mac und Linux kannst du von deinem Live-System die Datenbank und Media-Files per SSH ziehen, aufbereiten und in deine lokale Entwicklungsumgebung einspielen.

SQL-Queries debuggen

Brocksi beschreibt, wie du in verschiedenen Szenarien MySQL-Datenbank-Abfragen in Shopware 6 debuggst.

Demo-Daten

Du benötigst Demo-Daten bzw. Fake-Daten in deinem Shop?

Dabei hilft dir das Fixtures Plugin von basecom.

Design und Konzeption

Der offizielle Shopware Figma-Account bietet allerhand Vorlagen für Mockups und Designs.

Development-Setup

Es gibt verschiedene Möglichkeiten, ein Projekt bei sich aufzusetzen.

Beliebte Setups sind:

  1. dockware von der dasistweb GmbH
    Ein Docker-Setup mit extra gebauten Images, das in verschiedenen Varianten existiert: „Play“ ermöglicht es Jedem, innerhalb von Sekunden eine Test-Instanz von Shopware zum Ausprobieren zu starten, mit „Dev“ kann man an Projekte umsetzen bzw. Plugins erstellen, und mit „Contribute“ gibt es eine Umgebung, mit der man leicht direkt zum Shopware Core selbst beitragen kann.
  2. shopware-docker von shyim
    Es bietet nicht nur die nötigen PHP/Webserver/…-Container selbst, sondern auch eine Zugriffsmöglichkeit auf die DB über PHPMyAdmin, Mails werden über Mailcatcher abgefangen und die Suche wird über einen Elasticsearch-Container abgebildet.

Document Root

Dein Webserver muss auf das Shopware-Unterverzeichnis public/ zeigen.

Effizienter programmieren

Das Admin Extension SDK hilft bei der Arbeit an Plugins im Administrationsbereich.

Mit Jisse Reitsmas Shopware 6 Admin Auto Plugin muss man sich während der Entwicklung nicht mehr ständig im Admin-Bereich anmelden.

Entwicklungs-Tools

Da sich Shopware stark an Symfony und anderen Frameworks orientiert, reicht es in deiner Lieblings-IDE die Plugins für Symfony, Doctrine und Twig zu installieren. Für PhpStorm gibt es zusätzlich das kostenlose Plugin „Shopware 6 Toolbox„, das Live-Templates, Auto-Completion, Scaffolding-Features und vieles mehr hinzufügt.

Im Projekt selbst kannst du ein DevelopmentHelper-Plugin installieren, das dir weitere Hilfen bei der Entwicklung gibt.

Shopware liefert außerdem ähnlich wie Magento ein Kommandozeilen-Tool namens bin/console mit häufig benötigten Befehlen.

Plugins erstellen

Der Plugin-Generator von den Kellerkindern erstellt dir ein gutes Grundgerüst für dein eigenes Plugin.

Das Awesome Shopware 6 Linkverzeichnis von Elgentos bietet eine Menge an Links zu Plugins, Ressourcen, Themes und mehr.

Shopware bietet gemeinsam mit Jisse Reitsma einen offiziellen, kostenlosen Kurs Shopware 6 Backend Development an.

Auf Stack Overflow findest du viele Fragen zu Shopware 6. Die akzeptierten Antworten dort zu lesen, bringt dir ebenfalls interessante Einblicke in diverse Themen.

Darüber hinaus gibt es die offizielle Shopware 6 Entwickler:innen Dokumentation.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.