Programmieren > Programme > Magento 2

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.