Türchen 06: Die Reihenfolge in der Module geladen werden

Türchen 06 ist ein "Alles-Gute-Zum-Nikolaus"-Türchen. Wünscht dem guten alten Mann alles Gute und passt auf Knecht Ruprecht auf. Vielleicht kommt er ja auch zu euch wenn ihr ganz böse am Magento-Core bastelt? Neben viel Blödsinn ist natürlich auch heute wieder ein kleines Beispiel zu Magento im Kalender welches sich mit der Reihenfolge beschäftigt in der Module verarbeitet werden.

Magento ist über die Layout-Updates, ich kann es nicht häufig genug sagen, ein sehr sehr mächtiges System. Problematisch wird es nur wenn zwei Layout-Updates eine gleiche Aktion auf ein und den selben Block aufrufen. Wer hat dann am Ende recht? Natürlich der der zuletzt kam. Aber wer kam zuletzt? Um die Frage zu klären betrachten wir einmal die Modul-Konfiguration mit der Magento mitgeteilt wird das es unser eigentlich Modul laden soll aus app/etc/modules/Webguys_Optimizedcheckout.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<modules>
		<Webguys_Optimizedcheckout>
			<active>true</active>
			<codePool>community</codePool>
            <depends>
				<Mage_Checkout />
			</depends>
		</Webguys_Optimizedcheckout>
	</modules>
</config>

Hier ist zu erkennen das im Module-Tag jeweils ein Tag mit dem Namen des Moduls erstellt wird. (Achtung: Case-Sensitive).  Dieser Tag, hier Webguys_Optimizedcheckout, beinhaltet weitere Konfigurationen zum Modul. So wird der Code-Pool gesetzt der letztlich bestimmt ob unser Modul aus app/code/local oder app/code/community geladen wird. Dann kommen wir zum eigentlich Teil dieses Artikels: Der Depends-Tag. Dieser Tag sagt Magento das unser Modul von einem anderen abhängt, es also ohne das andere nicht funktioniert und somit unbedingt erst nach diesem geladen werden muss. Dieser Tag kann eine beliebige Anzahl an weiteren Modulen enthalten. Jedes einzelne wird als einzelner Tag abgebildet und nicht ineinander verschachtelt.

Über Depends ist es somit möglich das die eigenen Layout-Updates erst nach den Layout-Updates eines anderen Moduls abgearbeitet werden und es hier nicht zu Widersprüchen kommt.



Ein Beitrag von Tobias Vogt
Tobias's avatar

Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Seit 2016 ist er Mitgründer und CTO bei der connect-io GmbH, einer Magento-Agentur mit Sitz im idyllischen Paderborn-Salzkotten. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.

Alle Beiträge von Tobias

Dein Kommentar