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

Erweiterungspunkte aus PHP

Wo sich PHP-Code in Exponential einklinkt, ohne den Kernel zu bearbeiten - die Registrierungsmechanismen (directory, handler, autoload, file, design, ini, registry, filter, override), die Erweiterungspunkte, die ein…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/php-developers/extension-points-from-php.md

On this page

This page is a translation. Read the English original

Erweiterungspunkte aus PHP

Diese Seite richtet sich an PHP-Entwickler, die Verhalten ändern oder hinzufügen möchten und den richtigen Ort zum Einklinken suchen. Exponential wird auf einer Handvoll Arten erweitert, die sich wiederholen. kernel/setup/expradcatalogue.php (expRADCatalogue::points()) listet jeden Erweiterungspunkt auf, und Setup > RAD (/setup/rad) wird daraus gebildet: 70 Erweiterungspunkte, 65 davon mit einem Werkzeug. Die vollständige Liste mit jeder INI-Zeile ist Erweiterungspunkte.

Inhalt

  1. Die Mechanismen
  2. Die Punkte, die PHP-Entwickler am häufigsten nutzen
  3. Den leichtesten Mechanismus wählen
  4. Durch Einstellungen benannte Handler
  5. Die RAD-Seiten und die Übersicht

Die Mechanismen

MechanismusWie er gefunden wirdBeispiel
directoryeine Klasse in einem Verzeichnis, das der Kernel durchsucht, benannt durch eine Einstellung ...DirectoriesDatentypen, Workflow-Ereignistypen
handlereine durch eine Einstellung benannte Klasse, geladen über eZExtension::getHandlerClass()Sitzungs-Handler, Cluster-Datei-Handler, Mail-Transport
autoloadeine Klasse, die über einen Autoload-Pfad einer Erweiterung erreicht wirdTemplate-Operatoren (ExtensionAutoloadPath[])
fileeine Datei an einem Ort, an dem der Kernel nach Namen suchtfunction_definition.php, module.php
designein Template in einem Design, gefunden über die Design-KetteOverride-Templates
ininur Einstellungendie meisten Verhaltensschalter
registryEinträge einer Registry, die rad.ini deklariertEinstellungen der Debug-Leiste, Anbieter von Systemkarten
filterein Listener eines filter-Ereignisses in site.ini [Event] Listeners[]response/output, httpcache/store/headers
overrideeine über var/autoload/ezp_override.php ersetzte Kernel-Klassedas letzte Mittel

Die Punkte, die PHP-Entwickler am häufigsten nutzen

Sie möchtenPunktSeite
einen Feldtyp hinzufügenDatentypEinen Datentyp schreiben
einen Workflow-Schritt hinzufügenWorkflow-EreignistypEinen Workflow-Ereignistyp schreiben
Seiten hinzufügenModul und ViewsSchreiben Sie Ihre erste Modul-View
eine Kernel-View, einen Befehl oder einen Cronjob-Teil ändernUnterklasse über [RunnableSettings] Implementation[]Modul-Views als Klassen
Templates Daten gebenFetch-FunktionEine Fetch-Funktion schreiben
Templates eine Hilfsfunktion gebenTemplate-OperatorEinen Template-Operator in PHP schreiben
auf den Kernel reagierenListener für Kernel-EreignisseEreignisse, Listener und Filter
einen Wert unterwegs ändernListener für filter-EreignisseEreignisse, Listener und Filter
JSON für Ihr eigenes JavaScriptserverseitige Ajax-Funktionezjscore-JSON-Endpunkte in PHP
neue REST-RoutenREST-ProviderREST und entfernte Dienste aus PHP
eine Richtlinie mit Einschränkungen hinzufügenRichtlinienfunktion und EinschränkungRichtlinienfunktionen und Einschränkungen
zeitlich geplante ArbeitCronjob-Skript und -TeilEinen Cronjob-Teil schreiben
einen BefehlBefehl einer ErweiterungEinen Konsolenbefehl schreiben

Den leichtesten Mechanismus wählen

Bevorzugen Sie in dieser Reihenfolge:

  1. Einstellungen (ini), wenn eine Einstellung bereits tut, was Sie brauchen.
  2. Ein Template-Override (design), wenn sich nur die Ausgabe ändert.
  3. Einen registrierten Punkt (directory, handler, autoload, file, registry): Der Kernel ruft Ihre Klasse über ihren Namen auf, und mehrere Erweiterungen können nebeneinander bestehen.
  4. Einen Listener oder Filter, wenn Sie auf das reagieren oder das anpassen, was der Kernel tut.
  5. Eine Unterklasse über [RunnableSettings] Implementation[], wenn sich eine Methode einer Kernel-View, eines Befehls oder eines Cronjob-Teils ändern muss.
  6. Einen Kernel-Override, nur wenn nichts anderes funktioniert. Nichts registriert den Ersatz unter seinem Namen, zwei Erweiterungen, die dieselbe Klasse ersetzen, kollidieren still, und Sie müssen jedem Kernel-Update von Hand folgen (Kernel-Overrides, das letzte Mittel).

Durch Einstellungen benannte Handler

Viele Infrastrukturteile (Sitzung, Cluster-Dateien, Mail-Transport, Suchmaschine, Bild-Handler, statischer Cache) sind durch eine Einstellung benannte Klassen, geladen mit eZExtension::getHandlerClass(). Ihre Klasse implementiert dasselbe Interface oder erweitert die Klasse des Kernels, und die Einstellung nennt sie. Ein in einer Einstellung benannter Handler muss existieren, bevor die Einstellung live geht; andernfalls schlägt jede Anfrage fehl, die ihn braucht. Stellen Sie zuerst den Code bereit, danach die Einstellungen, und sichern Sie mit class_exists() ab, wo eine fehlende Klasse keine Seiten brechen darf (Durch Einstellungen benannte Handler).

Die RAD-Seiten und die Übersicht

  • /setup/rad zeigt jeden Erweiterungspunkt, seinen Mechanismus, die Einstellung, die ihn registriert, und ein Werkzeug, das ein Grundgerüst dafür schreibt (Datentyp, Template-Operator, Workflow-Ereignis, Modul, Einstellungserweiterung ...) (RAD-Werkzeuge, Die Funktion RAD-Werkzeuge).
  • /setup/radsurvey zählt, was Ihre Installation an jedem Punkt registriert, die Runnables und ihre Neuimplementierungen, und jeden Eintrag, der nicht funktionieren kann (eine Klasse, die nicht existiert, ein Ersatz, der die zu ersetzende Klasse nicht erweitert).

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