Ladereihenfolge der Erweiterungen
Teil 3, Kapitel 5. Wenn zwei Erweiterungen dieselbe Einstellung, denselben Template-Pfad oder dasselbe Override mitbringen, gewinnt eine von beiden. Welche, hängt von der Ladereihenfolge ab. Dieses Kapitel erklärt, wie die Reihenfolge entsteht und wie Sie sie steuern.
Die Regel
Eine Erweiterung, die in der Ladereihenfolge weiter vorn steht, hat die höhere Priorität: Ihre Einstellungen gewinnen, und ihre Designordner werden zuerst durchsucht. Die Erweiterung, die gewinnen soll, steht also zuerst.
Woher die Reihenfolge kommt
Die geschriebene Reihenfolge:
ActiveExtensions[]in der Reihenfolge, in der die Einstellungsdateien sie auflisten, gefolgt vonActiveAccessExtensions[]des Siteaccess.Deklarierte Abhängigkeiten: Mit
site.ini [ExtensionSettings] ExtensionOrdering=enabled(die Vorgabe) sortiert der Kernel die Liste nach den<dependencies>jederextension.xml(eZExtension::extensionOrdering()):Ihre extension.xmlsagtWirkung <requires><extension name="x"/></requires>xwird vor Ihrer geladen<uses><extension name="x"/></uses>xwird vor Ihrer geladen<extends><extension name="x"/></extends>Ihre wird vor xgeladen und gewinnt damit gegen sieErweiterungen, die nichts miteinander zu tun haben, behalten ihre geschriebene Reihenfolge. Ein Kreis von Abhängigkeiten lässt sich nicht sortieren; dann wird die geschriebene Reihenfolge verwendet.
Praktische Folgen
| Sie wollen | Tun Sie Folgendes |
|---|---|
| Die Einstellungserweiterung Ihrer Website soll gegen alles gewinnen | tragen Sie sie in ActiveExtensions[] zuerst ein |
| Ihr Theme soll die Templates eines anderen Themes überschreiben | deklarieren Sie in Ihrer extension.xml <extends> darauf, oder tragen Sie Ihres früher ein |
| Eine Bibliothekserweiterung soll vor Ihrer verfügbar sein | deklarieren Sie <requires> |
Die tatsächliche Reihenfolge sehen
./console exp:ini get site.ini/ExtensionSettings/ActiveExtensionsgibt die geschriebene Reihenfolge aus. Setup > Extensions zeigt auf jeder Karte "Geladen als" Nummer n, wenn die
tatsächliche Position von der geschriebenen abweicht, und listet Probleme mit Abhängigkeiten auf. In PHP gibt
eZExtension::activeExtensions() die Reihenfolge zurück, die der Kernel verwendet.
Die Designkette zeigt die Auswirkung auf Templates direkt; das Skript in Die Designkette gibt sie aus.
Erweiterungen in mehr als einem Ordner
Seit Juli 2026 können Erweiterungen in mehr als einem Ordner liegen:
[ExtensionSettings]
AdditionalExtensionDirectories[]
AdditionalExtensionDirectories[]=extension_srcextension/ bleibt der erste Ordner; die zusätzlichen Ordner werden danach durchsucht. Eine typische Aufteilung hält
installierte Erweiterungen in extension/ und Ihre eigenen in extension_src/. Aktivierung und Ladereihenfolge
ändern sich dadurch nicht: Eine Erweiterung wird über ihren Ordnernamen benannt, wo immer sie liegt. Siehe
Erweiterungen in mehr als einem Ordner.
Verwandte Seiten
- Zurück: Eine Erweiterung aktivieren
- Weiter: composer.json für eine Erweiterung
- Ladereihenfolge der Erweiterungen und sicheres Speichern
- extension.xml: Metadaten und Abhängigkeiten
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.