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

Pakete: Erweiterungen, Composer und Bundles

Die Erweiterung ist die Code-Einheit von Exponential, vergleichbar mit einem Symfony-Bundle, einem Laravel-Paket, einer Django-App oder einer Rails-Engine - ihre Verzeichnisstruktur, Metadaten, die Aktivierung global…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/web-framework-developers/packages-extensions-and-composer.md

On this page

This page is a translation. Read the English original

Pakete: Erweiterungen, Composer und Bundles

Diese Seite richtet sich an Entwickler, die ihren Code in Bundles, Paketen, Apps oder Engines strukturieren. In Exponential ist diese Einheit die Erweiterung: ein Verzeichnis unter extension/<name>/, das Module, Klassen, Templates, Einstellungen, Datentypen, Workflow-Ereignistypen, Cronjob-Teile, Befehle, Übersetzungen, Schemadateien und Tests enthalten kann. Erweiterungen werden als Composer-Pakete verteilt (Aufbau einer Erweiterung).

Inhalt

  1. Die Verzeichnisstruktur
  2. Metadaten
  3. Aktivierung und Reihenfolge
  4. Composer
  5. Im Vergleich mit anderen Frameworks

Die Verzeichnisstruktur

VerzeichnisEnthältRegistriert durch
modules/<module>/module.php, Views, function_definition.phpmodule.ini [ModuleSettings] ExtensionRepositories[], ModuleList[]
classes/PHP-Klassenphp bin/php/ezpgenerateautoloads.php -e
autoloads/Registrierung von Template-Operatorensite.ini [TemplateSettings] ExtensionAutoloadPath[]
design/<design>/Templates, Overrides, Stylesheets, Skripte, Bilderdesign.ini [ExtensionSettings] DesignExtensions[]
settings/*.ini.append.php; siteaccess/<name>/ pro Siteaccessdie Aktivierung der Erweiterung
datatypes/, eventtypes/event/Feldtypen, Workflow-Ereignistypencontent.ini, workflow.ini
cronjobs/Cronjob-Skriptecronjob.ini
bin/php/Befehle, gefunden als ext:<ext>:<name>nichts
share/, sql/<engine>/Schema- und StartdatenIhr Installationsbefehl
translations/<locale>/Übersetzungen der Oberflächesite.ini [RegionalSettings] TranslationExtensions[]
tests/PHPUnit-TestsIhre CI

Metadaten

DateiInhalt
extension.xml<metadata> mit Name, Version, Copyright, Lizenz, Info-URL; <dependencies> auf andere Erweiterungen
ezinfo.phpKlasse <extension>Info mit einer statischen Methode info() (Name, Version, Copyright, License, Info_url)
composer.jsondas Composer-Paket, Typ ezpublish-legacy-extension, mit extra.ezpublish-legacy-extension-name

Die Info-Seite (/ezinfo/about) liest zuerst extension.xml, daher müssen beide Versionsfelder übereinstimmen (Versionen und Releases).

Aktivierung und Reihenfolge

  • site.ini [ExtensionSettings] ActiveExtensions[] aktiviert eine Erweiterung für alle Siteaccesses; ActiveAccessExtensions[] in den Einstellungen eines Siteaccess aktiviert sie nur dort.
  • Die Reihenfolge ist wichtig: Die Reihenfolge von ActiveExtensions entscheidet, welche Einstellungen, Templates und Design-Dateien gewinnen, wenn zwei Erweiterungen dasselbe bereitstellen; mit ExtensionOrdering=enabled bestimmen die deklarierten Abhängigkeiten den Großteil der tatsächlichen Ladereihenfolge (Ladereihenfolge der Erweiterungen).
  • Setup > Extensions zeigt sie an und schaltet sie um (Leitfaden zu Erweiterungen).
  • Nach dem Aktivieren: Autoloads neu erzeugen, Caches leeren, deployen.

Composer

composer require yourvendor/expdemo:~1.0.0
php bin/php/ezpgenerateautoloads.php -e

Das Paket landet in extension/<name>, dem Namen aus extra.ezpublish-legacy-extension-name. Versionen stammen aus Git-Tags; ein veröffentlichter Tag ist dauerhaft (Composer-Pakete und Packagist). autoload.php lädt den Autoloader von Composer, sodass gewöhnliche Bibliotheken, die in der composer.json Ihrer Erweiterung verlangt werden, ihren Klassen zur Verfügung stehen.

Inhaltsklassen und Demo-Inhalte werden getrennt als Pakete (.ezpkg) transportiert (Migrationen und Startdaten).

Im Vergleich mit anderen Frameworks

FrameworkEinheitRegistriert durchExponential
SymfonyBundleconfig/bundles.phpActiveExtensions[]
LaravelPaket mit Service ProviderPackage DiscoveryComposer plus ActiveExtensions[]
DjangoAppINSTALLED_APPSActiveExtensions[]
RailsEngine, GemGemfile, mountComposer, ActiveExtensions[], Module
SpringStarterAuto-ConfigurationEinstellungen in der Erweiterung

Für die Aktivierung pro Siteaccess gibt es in anderen Frameworks keine gängige Entsprechung: Eine Installation kann eine Erweiterung auf einer Website ausführen und auf einer anderen nicht.

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.

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