Wie wird eine Magento-Erweiterung erstellt?;
Ein wichtiger Faktor der Magento-Plattform, der für ihren Betrieb unerlässlich ist, sind Erweiterungen oder Module. In einem früheren Artikel wurde die Bedeutung von Erweiterungen und das, was man darüber wissen sollte, bereits erläutert.“Wie wichtig sind Magento-Module?;”Detaillierte Informationen sind verfügbar. Tatsächlich sind die Kosten für Erweiterungen ein entscheidender Faktor für die Entwicklung eines Magento-Shops, und manche entscheiden sich daher für die Erstellung personalisierter Erweiterungen. Doch wie einfach ist das wirklich, und welche Vorteile und Fallstricke lauern dabei?;
Was ist eine Magento-Erweiterung?;
Eine Magento-Erweiterung ist ein Codepaket, das für spezifische Funktionen in Magento zuständig ist. Technisch gesehen handelt es sich um ein Verzeichnis mit PHP- und XML-Dateien in Blöcken, Controllern, Hilfsfunktionen und Modellen, die mit einer bestimmten Geschäftsfunktion verknüpft sind. Obwohl Module und Erweiterungen theoretisch ähnlich sind, bezeichnet der Begriff „Modul“ häufig den Kerncode, also Code, der Teil von Magento selbst ist. Im Gegensatz dazu ist eine Erweiterung eine Komponente, die die Magento-Funktionalität erweitert und anpasst. Erweiterungen können verteilt und in mehreren Shops installiert werden, um spezifische Funktionen zu realisieren.
Magento-Skalierbarkeit.
Im Laufe der Jahre lag der Fokus der Magento-Entwicklung auf maximaler Erweiterbarkeit. Kern des Magento-Entwicklungsmodells ist die Praxis, den Kerncode zu erweitern. Diese Strategie trägt zur Wartung des Magento-Kerncodes bei und ermöglicht es Händlern und Entwicklern, Magento an ihre individuellen Bedürfnisse anzupassen. Der Magento-Code entspricht größtenteils den PSR2-Codierungsstandards für PHP.
Darüber hinaus basiert Magento auf vielen bekannten Architekturstrukturen und integriert anerkannte und bewährte Softwarestrukturen, sogenannte Entwurfsmuster. Von diesen ist das MVC-Architekturmuster (Model-View-Controller) für die Entwicklung von Erweiterungen besonders relevant. Die Verwendung dieser Strukturen und Entwurfsmuster hilft PHP-Entwicklern, Entwicklungsprobleme zu bewältigen, die bei der Entwicklung von Erweiterungen auftreten können.
Durch die Unterteilung des Codes in Module ist eine Erweiterung in sich abgeschlossen und kann daher modifiziert oder ersetzt werden, ohne andere Bereiche des Codes zu beeinträchtigen. Jede Erweiterung dient dazu, spezifische Funktionen bereitzustellen, indem sie bestehende Funktionalität erweitert oder neue implementiert. Die unabhängige Funktionsweise jeder Erweiterung minimiert das Risiko von Konflikten und ermöglicht deren parallele Ausführung.

Magento-Erweiterungen sind für den Betrieb unerlässlich.
Arten von Magento-Erweiterungen.
- Magento verfügt über einen offiziellen Marktplatz namens Magento Marketplace, auf dem Nutzer Erweiterungen und Themes von Drittanbietern erwerben und herunterladen können, um ihre Onlineshops zu erweitern. Magento hat ein umfassendes Programm zur Qualitätssicherung von Erweiterungen implementiert, das Magento-Expertise, Entwicklungsrichtlinien und Prüfwerkzeuge kombiniert, um sicherzustellen, dass alle Erweiterungen auf dem Marktplatz den Codierungsstandards entsprechen und Best Practices befolgen.
- Sofort einsatzbereite Erweiterungen. Zusätzlich zu den Erweiterungen im Magento Marketplace bietet Magento weitere Drittanbieter-Erweiterungen. Diese Erweiterungen werden als “Vendor Pack Extensions” bezeichnet. Sie wurden vor der Aufnahme in eine unterstützte Magento-Version umfassend auf ihre Qualität geprüft. Zu den “Vendor Pack Extensions”, die in den neuesten Magento-Releases enthalten sind, gehören Amazon Pay, dotdigital, Klarna und Vertex.
- Benutzerdefinierte Erweiterungen. Viele Shopbetreiber greifen häufig zu viele Drittanbieter-Erweiterungen zurück, da diese günstig und leicht zugänglich sind. Eine übermäßige Nutzung solcher Erweiterungen, insbesondere schlecht programmierter Erweiterungen, kann jedoch die Performance eines Shops beeinträchtigen. Um dies zu vermeiden, empfiehlt es sich dringend, benutzerdefinierte Erweiterungen zu verwenden. Ist die Entwicklung eigener Erweiterungen nicht möglich, sollten vor der Bereitstellung im Live-Shop Standard-Drittanbieter-Erweiterungen getestet und so angepasst werden, dass sie nur die benötigten Funktionen nutzen.
Wie man eine benutzerdefinierte Erweiterung in Magento 2 erstellt.
Die Entwicklung von Magento 2-Erweiterungen ist ein großes Thema auf dem Markt. Magento 2 hat bereits Tausenden von Online-Shops geholfen, ihren Kunden ein besseres Nutzererlebnis zu bieten. Es ist mobiler als Magento 1 und wurde für die Unterstützung von PWAs (Progressive Web Apps) entwickelt. Darüber hinaus fungiert es als hochentwickelte Plattform mit leistungsstarken Marketingfunktionen, benutzerfreundlichen Katalogverwaltungstools, visuellem Merchandising, Status- und Vorschauaktualisierungen sowie Suchmaschinenoptimierung. In letzter Zeit wurden vermehrt Magento 2-Erweiterungen entwickelt.
- Auf dem System muss die neueste Magento 2-Version installiert sein.
- Der Magento-Cache sollte deaktiviert werden.
- Auswahl des Entwicklermodus: Ermöglicht die Überprüfung aller Fehler.

Die Entwicklung von Magento-Modulen eröffnet neue Wege für die Weiterentwicklung.
Schritte zur Entwicklung eines Magento-Moduls.
Schritt 1: Erstellen Sie Erweiterungsdateien und -ordner für die Installation und Registrierung. Ordner und Erweiterung erstellen:
app/code/Fixit/HelloWorld
Falls der Code-Ordner nicht existiert, kann er manuell erstellt werden. In diesem Fall lautet der Erweiterungsname „Helloworld“ und der Erweiterungs-Namespace ist der Ordner „Fixit“.
Für einen weiteren Code muss nun eine module.xml-Datei im Ordner “Helloworld” erstellt werden. Um dieses Modul zu registrieren, muss außerdem eine register.php-Datei im selben Ordner erstellt werden. Wechseln Sie in das Magento-2-Stammverzeichnis und führen Sie den Upgrade-Befehl aus.
app/code/Fixit/HelloWorld/etc/module.xml
Und der Inhalt:
<?xml version=”1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:Module/etc/module.xsd”>
<module name=”Fixit_HelloWorld” setup_version=”1.0.0″>
</module>
</config>
Schritt 2: Erstellen Sie die Datei etc/registration.php
app/code/Fixit/HelloWorld/registration.php
Und der Inhalt:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
‘'Fixit_HelloWorld',
__DIR__
);
Schritt 3: Schalten Sie das Gerät ein:
php bin/magento module:enable Fixit_HelloWorld
Das Modul sollte nun verfügbar sein. Nach diesem Schritt wird beim Öffnen der Website im Browser eine Fehlermeldung mit dem Hinweis “Aktualisieren Sie Ihre Datenbank” angezeigt.
php bin/magento setup:upgrade
Dann wird die Website als defekt angezeigt:
php bin/magento setup:static-content:deploy
Nach Abschluss der Bereitstellung ist die Erweiterung im Backend unter Systemkonfiguration → Erweitert → Modulausgabe deaktivieren sichtbar. Nun wird ein Controller für Modultests erstellt. Zuvor wird jedoch eine Route für das HelloWorld-Modul angelegt. Routen in Magento bestehen aus drei Teilen: Routenadresse, Controller und Aktion, wie im folgenden Beispiel:
http://fixit.com/index.php/frontname/controller/action
Um eine Route hinzuzufügen, muss eine routes.xml-Datei erstellt werden:
app/code/Fixit/HelloWorld/etc/frontend/routes.xml
Da es sich um einen Frontend-Pfad handelt, wird er dem Ordner „frontend/“ hinzugefügt; andernfalls müsste er dem Ordner „adminhtml/“ hinzugefügt werden.
Der Inhalt:
<?xml version=”1.0″ ?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:App/etc/routes.xsd”>
<router id=”standard”>
<route frontName=”helloworld” id=”helloworld”>
<module name=”Fixit_HelloWorld”/>
</route>
</router>
</config>
Es sollte ein weiterer Ordner erstellt werden:
app/code/Fixit/HelloWorld/Controller/Index/Test.php
und Inhalt:
<?php
namespace Fixit\HelloWorld\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
geschützte $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
öffentliche Funktion execute()
{
echo “Hello World”;
Ausfahrt?;
}
}
Die URL muss folgendes Format haben:
http://<yourhost.com>/helloworld/index/test
Die erste Magento-Erweiterung wurde entwickelt, die beim Öffnen die Meldung “Hallo Welt!” anzeigt. Allerdings ist das Gebiet der Magento-Erweiterungen sehr umfangreich, und es gibt viel zu lernen, um mit ihrer Entwicklung fortzufahren.




