11. Juni 2018, Anna Völkl

Tipps & Tricks: Magento 2 Modul-Ausgabe unterbinden

Tipps & Tricks: Magento 2 Modul-Ausgabe unterbinden

In unserer Kategorie Tipps & Tricks stellen wir euch kleine Handgriffe und Kniffe vor, die euch das Leben mit Magento erleichtern und Fehler beseitigen.

Magento 2 Modul-Ausgabe unterbinden

Kennt ihr auch das Problem, dass ein Modul, das ihr eigentlich garnicht benötigt, ungefragt Daten im Frontend eures Shops ausgibt?

Die erste logische Konsequenz, die einem hier in den Sinn kommt: Das Modul deaktivieren und so zwei Fliegen mit einer Klatsche schlagen – wir brauchen nicht lange suchen, wo die Ausgabe herkommt und wie wir sie unterbinden können und wir sparen auch noch Code ein, der ausgeführt werden muss.

Wenn das Alles ist – wozu dann dieser Artikel?

Leider ist es aber oft nicht möglich ein Modul einfach zu deaktivieren. Vor allem Abhängigkeiten zu anderen Modulen oder gewisse andere Funktionen werden benötigt, um den optimalen Output zu bekommen.

Ok – und was jetzt?

Was können wir also tun, damit wir die unerwünschten Frontend-Ausgaben loswerden, ohne das Modul zu deaktiveren?

Magento 1 hat uns hier über das Backend eine komfortable Möglichkeit geboten, genau das zu erreichen. Aber mit Magento 1 ist leider auch dieses Feature Geschichte ?

In Magento 2 müssen wir daher den etwas unkomfortableren Weg über die config.xml wählen:

Dieses Beispiel deaktiviert sämtliche Frontend-Ausgaben des Magento_Newsletter Moduls, das Modul selber bleibt im Hintergrund jedoch weiterhin aktiv.

Und wie kann ich jetzt verifizieren, dass keine Ausgaben mehr generiert werden?

Die Ausgaben, wegen der ihr überhaupt nach einer Lösung gesucht habt, sollten natürlich verschwunden sein.
Um aber auf Nummer sicher zu gehen, dass ein Modul keine Ausgaben mehr ins Frontend schreibt, könnt ihr folgendes Snippet als Ausgangsbasis verwenden:

Hier prüfen wir mit Hilfe des Module Managers, ob ein bestimmtes Modul noch Ausgaben produziert oder nicht. Die Klasse \Magento\Framework\Module\Manager muss vor der Verwendung natürlich noch über die in Magento 2 übliche Dependency Injection geladen werden.

Weiterführende Informationen

Weiterführende Informationen zu diesem Thema findet ihr in der offiziellen Magento 2 Dokumentation unter http://devdocs.magento.com/guides/v2.2/config-guide/config/disable-module-output.html