Magento 2 - Modul bauen
Modulverzeichnis
Selbst gebaute Module werden im Verzeichnis app/code/ abgelegt. (Anfangs existiert dieses Verzeichnis noch nicht. Falls dies der Fall ist, dann dieses Verzeichnis jetzt anlegen.)
Die nächste Ebene gibt nun an, wer dieses Modul geschrieben hat. Also entweder der Name einer Firma oder der Name einer Person bzw. dessen Kürzel. Wer hier sein erstes Modul schreibt, sollte also sich nun ausdenken, wie er das Verzeichnis nennen möchte, in das er seine Module ablegen will. Ich habe mich hier dazu erschienen dieses Verzeichnis ErichWeigand zu nennen.
Der Name des ersten Moduls nenne ich HelloWorld. Der vollständige Modulname ergibt sich dann zu ErichWeigand_HelloWorld und es wird im Verzeichnis app/code/ErichWeigand/HelloWorld programmiert werden.
registration.php
Im Modulverzeichnis muss dann eine Datei registration.php mit folgendem Inhalt angelegt werden. Es muss hier nur der Modulname angepasst werden.
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'ErichWeigand_HelloWorld',
__DIR__
);
module.xml
In dem Modulverzeichnis ein Unterverzeichnis etc anlegen. In diesem Unterverzeichnis eine Datei mit dem Namen module.xml anlegen. Auch hier muss hier nur der Modulname angepasst werden.
Ein sequence Tag ist nur notwendig, wenn das Modul auf einem oder mehreren anderen Modulen aufbaut. Im unten gezeigten Beispiel ist das Modul vom Modul Magento_Catalog abhängig. Dieser sequence Tag stellt sicher, dass das genannte Modul vor diesem Modul geladen wird, damit diese Abhängigkeit erfüllt werden kann.
<?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="ErichWeigand_HelloWorld" setup_version="1.0.0">
<sequence>
<module name="Magento_Catalog" />
</sequence>
</module>
</config>
Modul aktivieren
bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy
Mit diesen 3 Befehlen wird das Modul aktiviert. Der erste ist sicherlich nötig. In manchen Fällen sind die beiden anderen Fälle nicht unbedingt notwendig. Schaden tun sie allerdings nicht.