Magento 2 programmieren lernen: Infos, Links Tipps, Tutorials

Auf dieser Seite sammle ich vor allem meine News rund um die Programmierung/Entwicklung aus meiner Rubrik „Aktuelles aus der Magento-Welt“. Es handelt sich also nicht um vollständige Tutorials oder Programmier-Kurse – dafür gibt es bereits viele gute Quellen im Web.

mageres enthält eine lange Liste mit wertvollen Ressourcen (Bücher, Tools, Extensions, Blogs, Podcasts uns viele mehr), zusammengestellt von Alessandro Ronchi. Vergleichbar mit den „Awesome XYZ“-GitHub-Repositories, die man für viele IT-Themen findet.

Extdn bietet gute Zusammenfassungen zu diversen Themen, zum Beispiel für die Entwicklung sicherer Extensions und wie man Magento 2 Extensions allgemein gut programmiert.

Fooman verschickt monatlich den Fooman Developer Monthly Newsletter.

Extension-Code validieren

Mit der Extension Yireo_ExtensionChecker kann man Module auf Best Practices überprüfen.

Best Practices für das API-Design von Magento-2-Klassen

Igor vom Magento-Team erklärt in einem ausführlichen Beitrag, worauf man achten soll, wenn man seine Magento-2-Klassen entwirft und sie über die (Web-)API verfügbar macht.

Dev-Tools

Mit dem Kommando-Zeilen-Tool Pestle von Alan Storm könnt ihr Code für Magento 2 Module erstellen lassen.

Dasselbe gilt für den Ultimate Module Creator von Marius Strajeru.

Einrichtung von Elasticsearch

Das Video-Tutorial von Max Pronko zeigt, wie man den Elasticsearch-Server aufsetzt und die Magento-2-Extension konfiguriert:

PhpStorm-Plugins

Das umfangreichste und wahrscheinlich bekannteste PhpStorm-Plugin für Magento 2 ist Magicento. Enrique Piatti, ein Community-Mitglied, ist manchen vielleicht schon von seiner Magento-1-Version des Plugins bekannt. Das Plugin ist inzwischen kostenpflichtig (Stand März 2019: 32 Dollar für Updates für ein Jahr). Es ist aufgrund der Features und der Zeit die man sich erspart aber auf jeden Fall schnell sein Geld wert.

ProgrammiererInnen des Core-Teams bieten zusätzlich ein offizielles PhpStorm-Plugin an, das direkt über den Plugin-Manager in PhpStorm installiert und aktualisiert werden kann. Es ist nicht so umfangreich wie Magicento, aber dafür kostenlos und trotzdem sehr hilfreich. Man kann den Code auf GitHub einsehen, Probleme melden und bei der Weiter-Entwicklung helfen. Außerdem findet man dort den Changelog.

Composer ab Magento 2.3 schneller machen

Tipp

Magento 2.4.2 brachte die Unterstützung von Composer 2. Falls du diese oder eine neuere Magento-Version verwendest, überprüfe ob ein Umstieg auf Composer 2 deine Performance-Probleme behebt, bevor du dieses Modul einsetzt.

Fooman veröffentlichte im Juni 2019 ein Proof-of-concept-Modul, mit dem die Befehle „composer require“ bzw. „composer update“ wesentlich weniger RAM benötigen und schneller ablaufen. Das Modul ist direkt bei Packagist als fooman/composer-magento2-optimizations verfügbar.

Zahlen seines Tests:

  • Vorher: Memory usage: 351.1MiB (peak: 1092.15MiB), time: 17.23s
  • Nachher: Memory usage: 268.44MiB (peak: 345.67MiB), time: 8.67s

Erreicht wird das, indem alte Symfony-Versionen beim Aufbau des Abhängigkeiten-Baums nicht mehr berücksichtigt werden. Das Modul kann ab Magento 2.3.0 verwendet werden.

Mail-Versand automatisiert testen mit MailHog-Wrapper

M2Coach hat die Magento-2-Extension M2Coach/MFTF-MailHog-Wrapper veröffentlicht, mit der man den Mail-Versand automatisiert mittels MFTF und MailHog testen kann.

Composer-Plugin für einfachere Magento-Updates

Das Composer-Plugin magento/composer-root-update-plugin soll helfen, Magento-Updates etwas zu erleichtern.

Das Plugin kümmert sich darum, die eigene Projekt-composer.json mit dem composer.json-File der neuen Magento-Version abzugleichen und alle Änderungen aus dem Magento-composer.json-File in die eigene composer.json zu übertragen. Anpassungen, die man selbst in der composer.json vorgenommen hat, bleiben unangetastet.

Das Problem und der Lösungsansatz des Tools sowie seine Funktionsweise werden ausführlich im Dev-Blog beschrieben.

Artikel zur Queue-Funktionalität

Michiel Gerritsen schrieb im November 2019 einen Einführungs-Blogpost zur Verwendung der Magento-2-Queue.

Status-Page von Adobe für Magento Cloud Services

In der Magento-Sektion von status.adobe.com lässt sich überprüfen, ob in einem dieser Bereiche Probleme bekannt sind:

Magento 2 Composer Patch Helper Extension

Eine Chrome-Extension von Mr. Lewis blendet bei Pull-Requests auf GitHub einen Button „View Patch JSON“ ein. Klickt man darauf, dann erhält man ein Composer-JSON, mit dem man über Vaimos Patch-Helper die Änderung in das eigene Projekt einbinden kann.

ExtDN Installer erleichtert Installation von Modulen

Der ExtDN Installer macht das Einfügen von Extensions noch etwas einfacher. Normalerweise muss man als Entwickler als allerersten Schritt je nach Setup drei bis fünf Schritte ausführen, bis man anfangen kann sich mit dem Modul zu beschäftigen. ExtDN Installer verkürzt das auf einen Befehl.

Admin-Menü: Übersichtlichkeit mit 3rd-Party-Extensions erhöhen

Das Modul „Clean Admin Menu“ macht Schluss damit, dass Extension-Hersteller eigene Hauptmenü-Punkte anlegen und damit die Navigation zumüllen.

Es fasst die 3rd-Party-Extensions stattdessen in einem Haupt-Menüpunkt „Extensions“ zusammen. Auch in der Store-Konfiguration stellt „Clean Admin Menu“ die Extensions im Abschnitt „Store > Configuration > Extensions“ zusammen.

Farben in Backend-Grids verwenden

Mit der Erweiterung „Magento 2 Grid Colors“ können Sie Zeilen in den Magento-Tabellen im Backend einfärben. Das funktioniert für Bestellungen, Rechnungen, Sendungen und Gutschriften. So können Sie zum Beispiel im Order-Grid die Bestellungen je nach Order-Status einfärben.

SeoSnap: Server Side Rendering für PWA Studio

Die niederländische Agentur Experius veröffentlichte im Februar 2020 mit SeoSnap eine Open-Source-Lösung die es erlaubt, PWA Studio basierte Webshops mit Server Side Rendering (SSR) zu sehen. Das ist wichtig für gute SEO.

Extension für Verbesserung des Page-Speeds

Die niederländische Agentur Elgentos hat im Februar 2020 das Open-Source-Modul elgentos/magento2-lightspeed bereit gestellt. Es erleichtert einige Optimierungen des Shops, um eine bessere Geschwindigkeit und damit einen höheren Score bei Googles Lighthouse Check zu erlangen.

n98-magerun2-Befehl zum Erstellen eines app/etc/env.php-Files

Peter Jaap erweiterte Elgentos n98-magerun-Addons um einen Befehl „env:create„, mit dem man eine Basis app/etc/env.php-Datei programmatisch erstellen kann. Das ist besonders für Automatisierungen hilfreich.

Weiteres Repository für PhpStorm-Live-Templates

Andere haben es bereits vorgemacht, im März 2020 veröffentlichte auch Mark Shust seine PhpStorm-Live-Templates, um schneller Magento-2-Code zu generieren. Vielen Dank dafür!

Magepack: npm-Paket für performanteres Magento 2 Frontend

Mit Version 2 spricht das npm-Package magepack eine Frontend-Optimierung mit stark verbesserten Lighthouse-Scores gegenüber dem Standard-Frontend. Zum Beispiel sollen in der mobilen Bewertung bis zu 91 Punkte möglich sein.

Modul für globale Custom Layouts

Mit Magento 2.3.4 wurde aus Sicherheitsgründen eine Änderung eingeführt, die HändlerInnen mit vielen Custom Layout XML Anweisungen das Leben schwerer macht: man musste seiten/kategorie/produktspezifische XML-Layout-Anweisungen für jede/s einzelne Seite/Kategorie/Produkt extra angeben.

Abhilfe schafft das Modul Integer_Net GlobalCustomLayout. Es erlaubt globale XML-Layout-Files zu definieren, die dann für alle Seiten/Kategorien/Produkte zur Auswahl stehen.

Kostenloses Modul zum leichteren Einspielen von Inhalten über Patches

Als EntwicklerIn muss man öfters für KundInnen Inhalte wie CMS-Seiten, CMS-Blöcke oder Konfigurationseinstellungen programmatisch in den Shop einpflegen.

Weil das durchaus aufwändiger sein kann als man denkt, hat Mark Shust mit MarkShust_SimpleData ein kostenloses Modul veröffentlicht, welches das leichter macht. Mark gibt in einem Blog-Post eine Einleitung für diese Extension.

Info-Artikel zur reCAPTCHA v3 Implementierung

In „Magento’s Not Sane Google reCAPTCHA v3 Implementation“ beschreibt Max Chadwick nicht nur die unterschiedlichen Versionen von reCAPTCHA, sondern auch, warum die Standard-Implementierung unter Umständen nicht so funktioniert wie es für HändlerInnen ideal wäre.

Kurz zusammengefasst: reCAPTCHA v3 verlangt von UserInnen im Unterschied zu v2 keinen Beweis, dass sie Menschen sind. Magento blockt, wenn das Verhalten darauf schließen lässt, die Anfragen direkt. Dadurch werden potentiell auch echte UserInnen geblockt, weil das automatische Scoring echte Menschen irrtümlich als Bots erkennen kann („false positives“).

Besserer Überblick über Änderungen in der EntwicklerInnen-Dokumentation

05. August – die Magento Devdocs listen auf einer eigenen Seite auf, was in der Dokumentation aktualisiert wurde. Behaltet die Liste im Auge. Sie hilft auf versteckte Features, Änderungen und Probleme zu stoßen.

Semantic Versioning Checker – kostenloses Tool von Magento

Mit dem Semantic Versioning Checker hat Magento ein Werkzeug veröffentlicht, dem man ein Diff zwischen zwei Modul-Versionen gibt und das dafür berechnet, welcher Versionssprung laut den Magento Backword Compatibility Guidelines nötig ist. Das erleichtert das richtige Versionieren von Modulen wesentlich!

Mehr Informationen findet ihr im Forums-Eintrag.

Tool von Ivan Chepuryni für Magento 2 Datenmigration / Import und Export

Ivan stellte im August 2020 das „Simple Import / Export Tool“ bereit, das auch große Datenmengen schnell überträgt. Ivan dazu auf Twitter: die Migration von 1 Million Produkten in 20 Stores benötigt 45 Minuten.

Schreibe einen Kommentar

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