Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

extension.xml: Metadaten und Abhängigkeiten

Die Datei extension.xml - die Metadaten, die vor ezinfo.php gelesen werden, und die Abhängigkeiten requires, uses und extends, die die Seite Extensions anzeigt und die über die Ladereihenfolge entscheiden.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-3-extension-developer/extension-xml.md

On this page

This page is a translation. Read the English original

extension.xml: Metadaten und Abhängigkeiten

Teil 3, Kapitel 3. extension.xml erfüllt zwei Aufgaben: Sie trägt dieselben Metadaten wie ezinfo.php (und wird zuerst gelesen), und sie deklariert Abhängigkeiten von anderen Erweiterungen, die die Seite Extensions anzeigt und die über die Ladereihenfolge entscheiden können.

Eine vollständige Datei

<?xml version="1.0" encoding="utf-8" ?>
<software>
    <metadata>
        <name>My Site Hello</name>
        <version>1.0.0</version>
        <copyright>Copyright (C) 2026 Your Organization</copyright>
        <license>GNU General Public License v2.0 (or any later version)</license>
        <info_url>https://github.com/your-organization/mysite_hello</info_url>
    </metadata>
    <dependencies>
        <requires>
            <extension name="ezjscore" />
        </requires>
        <uses>
            <extension name="eztags" />
        </uses>
        <extends>
            <extension name="ezwebin" />
        </extends>
    </dependencies>
</software>

Prüfen Sie sie:

xmllint --noout extension/mysite_hello/extension.xml

Keine Ausgabe bedeutet, dass sie wohlgeformt ist. Eine extension.xml, die sich nicht parsen lässt, wird ignoriert (ihre Fehler gehen in die Debug-Ausgabe), und stattdessen wird ezinfo.php verwendet.

Der Metadatenblock

<name>, <version>, <copyright>, <license>, <info_url> und optional <description>, <summary> und <author>. Es gelten die Regeln von ezinfo.php: ein lesbarer Name, die Version ohne v, der volle Lizenzname, die Projektseite als info_url. Niemals //autogentag// oder dev-master als Version.

Eine ältere flache Form, <extension><name>..</name><version>..</version></extension> ohne Block <metadata>, wird auf dieselbe Weise von der obersten Ebene gelesen.

Abhängigkeiten

ElementBedeutetAuf der Seite Extensions angezeigt alsLadereihenfolge mit ExtensionOrdering=enabled
<requires>Ihre funktioniert nicht ohne sieBenötigt; ein Problem, wenn sie nicht aktiv istdie benötigte Erweiterung wird vor Ihrer geladen
<uses>Ihre verwendet sie, wenn sie vorhanden istVerwendetdie verwendete Erweiterung wird vor Ihrer geladen
<extends>Ihre baut auf ihr auf und ändert sieErweitertIhre wird vor der erweiterten geladen

Die Reihenfolge stammt aus ezpExtension::getLoadingOrder() (kernel/private/classes/ezpextension.php), das requires und uses zu "danach" und extends zu "davor" macht, und aus eZExtension::extensionOrdering(), das die aktiven Erweiterungen topologisch sortiert. Ein Test mit dem Sortierer des Kernels zeigt die Richtung: Eine Erweiterung a, die b benötigt, kommt als b,a heraus.

Warum das wichtig ist: Eine Erweiterung, die in der Ladereihenfolge weiter vorn steht, gewinnt bei Einstellungen und Design-Templates. Also:

  • deklarieren Sie <extends>, wenn Ihre Erweiterung Templates oder Einstellungen einer anderen überschreibt: Ihre wird zuerst geladen und gewinnt;
  • deklarieren Sie <requires> für eine Bibliothek, die Sie brauchen: Sie wird zuerst geladen, und die Seite Extensions warnt, wenn sie fehlt.

site.ini [ExtensionSettings] ExtensionOrdering=enabled ist die Vorgabe. Die Seite Extensions zeigt auf jeder Karte, an welcher Stelle eine Erweiterung tatsächlich geladen wird, wenn das von ihrer geschriebenen Position abweicht (Die Seite Extensions).

Abhängigkeiten im Code lesen

expExtensionCatalogue::dependenciesFromXml( $xml ) (kernel/classes/expextensioncatalogue.php) zerlegt einen String mit einer extension.xml in die Listen requires, uses und extends, genauso wie die Ladereihenfolge sie liest:

<?php
$xml = file_get_contents( 'extension/ezwebin/extension.xml' );
print_r( expExtensionCatalogue::dependenciesFromXml( $xml ) );

Bei jedem Release

<version> muss der Release-Version und der Version in ezinfo.php entsprechen, und zwar in dem Commit, auf den der Tag zeigt. Siehe ezinfo.php und extension.xml hochzählen.

Verwandte Seiten

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.

Urheberrecht und Copyleft

Seit dem 29. Oktober 2026 halten die Exponential Foundation und 7x das Copyright an Exponential gemeinsam, die Foundation zuerst genannt: „Exponential Copyright © 1998-2026 Exponential Foundation and 7x“, in Dateien „Copyright (C) 1998 - 2026 Exponential Foundation and 7x. All rights reserved.“ Wer es hält und warum, was die GPL Ihnen erlaubt, welche Hinweise Dritter bleiben und wie der Hinweis in neue Dateien und Erweiterungen kommt: Urheberrecht und Copyleft.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x