Magento 2 – Was verbirgt sich hinter der neuen Software?

In den letzten Jahren haben Webtechnologien und verwandte Technologien einen rapiden Wandel durchgemacht. Für lange Zeit war PHP zurecht das eher stiefmütterlich behandelte Kind der Webentwickler. Obwohl belächelt und verflucht zugleich, liefen und laufen immer noch die meisten Webseiten auf einem PHP-Stack. Auch bei den Shopsystemen setzte sich in vielen Bereichen Magento 1 auf PHP-Basis durch und beherrscht dort seit vielen Jahren den Markt.

Leider machten sich die vielen Jahre bemerkbar durch schwere Wartbarkeit, Unübersichtlichkeit, einen Wust aus dazu gebauten Komponenten und Extensions, der auch noch auf ursprünglich längst veralteter Technologie basierte. Längst ist PHP mit dem 5.6er Zweig und erst recht der auf Geschwindigkeit optimierten Version 7 auf dem besten Wege, sich vor anderen Sprachen nicht mehr verstecken zu müssen. Ein Zusammenschluss vieler Entwickler und Firmen sorgt zudem dafür, dass gewisse Standards und Patterns forciert und auch eingehalten werden.

Auch auf der Darstellungsseite hat sich im Netz die letzten Jahre viel getan, so dass manuell gepflegte Stylesheets für hunderte Unterseiten umfassende Shopsysteme absolut nicht mehr zeitgemäß sind. Stattdessen setzen moderne Web-Apps auf etablierte und vielfach getestete Bibliotheken und Prä-Prozessorsysteme wie jQuery, requirejs, LESS oder SASS und mehr, welche nicht nur Entwicklungszeit verringern und für Übersicht sorgen, sondern auch weniger Oberfläche für Fehler und Probleme bieten.

Neu in Magento 2

Obwohl so viel neue Technologie und Möglichkeiten wie möglich und sinnvoll war in den bestehenden Versionszweig der Magento-Software integriert wurde, war es an anderer Stelle notwendig, die Architektur von Grund auf neu zu entwickeln, um alle Vorteile der veränderten zugrundeliegenden technologischen Landschaft ausnutzen zu können. So war dann die Version 2 von Magento, ein kompletter Neuaufbau, einige Jahre in Entwicklung, bevor sie kürzlich endlich veröffentlicht wurde. Aktuell befinden wir uns bei Version 2.1.1 und die Vorteile der neuen Architektur werden immer offensichtlicher.

So bringt Magento 2 neben der bekannten jQuery-Bibliothek standardmäßig auch knockout.js und require.js mit, welche die Frontendentwicklung zwar erstmal komplexer zu scheinen werden lassen, dem Frontendentwickler jedoch schlussendlich einiges an Arbeit abnehmen und Fallstricke zu vermeiden helfen. Zudem können Skripte und Funktionen nun nach Bedarf automatisch nachgeladen und eingebunden werden, was Ladezeiten und Responsivität im Browser erhöht. Auch das Standard-Theme des Shops ist nun, gemäß der Mobile-first Devise, komplett responsive in LESS implementiert, so dass kundenspezifische Anpassungen leichter vorzunehmen sind.

Aus Entwicklersicht wurde der große monolithische, unübersichtliche Block von Core-Code, der Magento 1 noch beherrschte, gegen ein modulares System getauscht, das nicht nur alle Standardfunktionen als einzelne Module bereitstellt, sondern Fremdcode und -bibliotheken genauso behandelt, und deren Installation sowie Pflege über PHP-Paketmanagementsoftware Composer erlaubt. So muss Fremdcode nicht händisch aktuell gehalten werden, sondern ein einzelner Befehl prüft auf Updates und holt sich die aktuellen Versionen aller installierten Module automatisch.

Außerdem hinzugekommen ist ein Plugin-System, welches Entwicklern einfach ermöglicht, eigenen Code vor, hinter oder um Funktionen der Core-Module einzufügen, bzw. diese zu modifizieren. Dazu wurde deutlich gewissenhafter auf bekannte und erfolgreiche Muster der Softwareentwicklung zurückgegriffen, was Code-Verständnis und Lesbarkeit erhöht. Dependency Injection ersetzt großflächig das manuelle Erzeugen von Objekten und Modellen, was es dem Entwickler ermöglicht, sich auf die Funktionalität zu konzentrieren, und weniger darauf, erstmal an die Daten heranzukommen.

Auch die Performance konnte trotz komplexerer Architektur gesteigert werden, indem auf effizientes Caching, Vor-Generierung von Proxy-Klassen sowie das deutlich schnellere PHP7 gesetzt wird. Dazu bietet Magento 2 von Haus aus Unterstützung für Solr und Varnish, so dass hier noch das letzte Quäntchen Geschwindigkeit herausgeschlagen werden kann. Eine sinnvolle Unterscheidung von Entwicklungs- und Produktivmodus ermöglichen es dabei den Entwicklern, trotz dieser Methodiken ohne große Einbußen am System direkt arbeiten zu können.

Doch auch Produkt- und Store-Managern wird das Leben mit Magento 2 erleichtert. Neben Migrationstools für Alt- und Fremddaten gibt es einen Konfigurator zur einfachen Erstellung von Produktoptionen. Daneben ist das Backend nun endlich responsive auf mobilen Geräten nutzbar sowie deutlich übersichtlicher geworden, was nicht nur Nerven, sondern auch Zeit spart.

Ausblick

Nun ist Magento 2 noch relativ jung und viele Erweiterungen sowie bekannte Funktionen sind noch nicht portiert, Kunden beäugen erst einmal vorsichtig, was dieses neue System noch bringen wird. Doch zu lange warten sollte man nicht. Denn nicht nur der Support für Magento 1.9 läuft im November 2018* aus, sondern schon jetzt verschiebt sich der Markt in Richtung Magento 2 mit seinen neuen Funktionen und Möglichkeiten. Noch fehlende Erweiterungen wie die diverser Zahlungsdienstleister sind entweder schon angekündigt oder fast fertig geschrieben und insgesamt scheint Magento 2 noch einmal zukunftsträchtiger und zuverlässiger als Magento 1 zu sein.

 

 

* Nachtrag, 31.05.2017: Der Magento 1 Support wird auf unbestimmte Zeit fortgeführt.

Über den Autor

Josef Behr hat im Jahr 2016 seinen Master in Kognitionswissenschaften erfolgreich abgeschlossen und ist seitdem ein fester Bestandteil des Magento-Teams von basecom.