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

Erweiterungen, die Sie schreiben werden

Für CMS-Entwickler die Erweiterungen, die ein typisches Website-Projekt braucht, aus Sicht des Projekts. Das sind eine Website-Erweiterung mit Design und Einstellungen und optional eine Code-Erweiterung mit Operatoren…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/cms-developers/extensions-you-will-write.md

On this page

This page is a translation. Read the English original

Erweiterungen, die Sie schreiben werden

Diese Seite richtet sich an Entwickler, die den Code eines Website-Projekts planen. In Exponential liegt alles, was ein Projekt hinzufügt, in Erweiterungen unter extension/: Designs, Einstellungen, PHP-Code, Templates, Übersetzungen. Der Kernel und die mitgelieferten Erweiterungen bleiben unberührt, und das macht Aktualisierungen sicher. Ein typisches Projekt braucht eine oder zwei eigene Erweiterungen.

Inhalt

  1. Der übliche Satz
  2. Die Website-Erweiterung
  3. Eine Code-Erweiterung
  4. Was eine Code-Erweiterung hinzufügen kann
  5. Aktivieren und laden
  6. Versionsverwaltung
  7. Schnelle Starts: die RAD-Werkzeuge
  8. Wo das Buch tiefer geht

Der übliche Satz

ErweiterungEnthältBeispielname
Website-Erweiterungdas Design, Override-Regeln, Siteaccess-Einstellungen, Bildvarianten, eigene Tags, Klassen als Paketeexp_mysite
Code-Erweiterung (bei Bedarf)PHP: Operatoren, Fetch-Funktionen, Module, Workflow-Events, Cronjobs, Konsolenbefehleexp_mysite_tools

Kleine Projekte halten beides in einer Erweiterung. Trennen Sie sie, wenn der Code von anderen Websites wiederverwendet wird oder wenn Designer und PHP-Entwickler in unterschiedlichen Release-Zyklen arbeiten. Benennen Sie sie mit dem Präfix Ihres Projekts und in neuem Code mit exp (Namenspräfixe).

Die Website-Erweiterung

extension/exp_mysite/
  extension.xml, ezinfo.php, composer.json, README.md
  settings/
    design.ini.append.php            DesignExtensions[]=exp_mysite
    site.ini.append.php              extension-wide settings
    image.ini.append.php, content.ini.append.php
    siteaccess/<public sa>/          site.ini, override.ini ... of the public siteaccess
  design/exp_mysite/
    templates/  override/templates/  stylesheets/  javascript/  images/
  translations/<locale>/translation.ts
  packages/                          classes exported as packages

Design-Arbeit: Ihre eigene Design-Erweiterung, Aufbau einer Design-Erweiterung und Theme-Erweiterungen: hier beginnen der Designer.

Eine Code-Erweiterung

extension/exp_mysite_tools/
  extension.xml, ezinfo.php, composer.json
  classes/                    PHP classes, autoloaded
  autoloads/                  eztemplateautoload.php for template operators
  modules/exp_mysite_tools/   module.php, views, function_definition.php
  eventtypes/event/<type>/    workflow event types
  cronjobs/                   cronjob scripts
  bin/php/                    command line scripts
  settings/                   the registrations and your own .ini
  tests/

Jeder Ordner und die Einstellung, mit der der Kernel ihn findet: Verzeichnisaufbau einer Erweiterung.

Was eine Code-Erweiterung hinzufügen kann

Sie brauchenFügen Sie hinzuLesen
Einen berechneten Wert oder eine Formatierung in Templateseinen Template-OperatorTemplate-Operatoren
Daten, die kein Fetch lieferteine Fetch-FunktionFetch-Funktionen
Eine Seite mit eigener Adresse, einen Formular-Handler, einen JSON-Endpunkteine Modul-View mit einer RichtlinieModule und Views
Einen Schritt beim Veröffentlichen oder an der Kasseeinen Workflow-Event-TypWorkflows und Auslöser
Geplante Arbeiteinen CronjobCronjobs
Ein Feld mit eigener Speicherung und Bearbeitungeinen DatentypDatentypen wählen
Daten, die keine Inhalte sindeine Tabelle mit eZPersistentObjectPersistente Objekte und Tabellen
Einen Import oder eine Wartungsaufgabeeinen Konsolenbefehl oder ein SkriptCLI-Skripte und Konsolenbefehle

Versuchen Sie Einstellungen, Templates und vorhandene Erweiterungen vor eigenem Code; das Kapitel Wenn Einstellungen nicht genügen des Buchs hilft bei der Entscheidung.

Aktivieren und laden

  1. Fügen Sie die Erweiterung zu site.ini [ExtensionSettings] ActiveExtensions[] hinzu (oder zu ActiveAccessExtensions[] in einem Siteaccess):

    ./console exp:ini add 'site.ini/ExtensionSettings/ActiveExtensions[]' exp_mysite global --allow-root-user
  2. Erzeugen Sie die Autoloads neu, nachdem Sie Klassen hinzugefügt oder umbenannt haben: php bin/php/ezpgenerateautoloads.php -e.

  3. Leeren Sie den INI-Cache und starten Sie die PHP-Worker neu, die die Website bedienen (Eine Website bereitstellen).

Die Reihenfolge zählt: Eine Erweiterung, die in ActiveExtensions[] früher steht, gewinnt bei Einstellungen und in der Design-Kette (Eine Erweiterung aktivieren, Ladereihenfolge der Erweiterungen).

Versionsverwaltung

Jede Ihrer Erweiterungen ist ein eigenes Git-Repository oder Teil Ihres Projekt-Repositorys; der Kernel und die mitgelieferten Erweiterungen kommen aus Composer. Committen Sie Templates, Einstellungen, Pakete und Code; committen Sie nie settings/override/, var/ oder Zugangsdaten (Mit Git entwickeln, Entwicklungsumgebung). Geben Sie der Erweiterung eine extension.xml und eine ezinfo.php mit einer Version, damit die Info-Seite der Administration und die Aktualisierungsprüfungen erkennen, welches Release installiert ist (extension.xml, ezinfo.php).

Schnelle Starts: die RAD-Werkzeuge

Die Administration hat Assistenten, die ein funktionierendes Gerüst schreiben: eine Design-Erweiterung, ein Modul, einen Template-Operator, einen Datentyp, ein Workflow-Event, eine Einstellungserweiterung, eine Inhaltserweiterung mit Klassen (RAD-Werkzeuge, Rundgang durch die RAD-Werkzeuge). Lesen Sie, was sie erzeugen; von da an ist es Ihr Code.

Wo das Buch tiefer geht

Das Buch Erweiterungsentwicklung behandelt all das ausführlich, von der ersten Erweiterung bis zu ihrer Veröffentlichung. Verwenden Sie seine Lesepfade: Der Pfad für Website-Bauer (Einstellungen, Templates, Overrides) und der Pfad für PHP-Entwickler passen am besten zu einem CMS-Entwickler. Die Veröffentlichung einer Erweiterung für andere folgt strengen Regeln für Versionen und Tags (Veröffentlichen).

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