Teil 3: Der Erweiterungsentwickler
Dies ist der dritte und umfangreichste Teil von
Erweiterungsentwicklung: das Buch. Er erklärt, ein
Mechanismus pro Kapitel, wie eine Erweiterung PHP-Code in den Kernel einbindet: wohin der Code gehört, welche
Einstellung ihn registriert, den Vertrag (Klasse und Methoden, aus dem Quellcode des Kernels übernommen), ein
minimales Beispiel, das mit php -l geprüft und, wo es gefahrlos möglich war, mit geladenem Kernel ausgeführt wurde;
wie Sie sehen, dass es funktioniert; die häufigen Fehler; und den RAD-Assistenten, der den Code für Sie schreibt. Die
Tutorials bauen
anschließend Schritt für Schritt echte kleine Erweiterungen.
Der Aufbau
Die Hülle einer Erweiterung
| Kapitel | |
|---|---|
| Der Verzeichnisaufbau einer Erweiterung | jeder Ordnername und was der Kernel damit macht |
| ezinfo.php, extension.xml | wer sie gemacht hat, welche Version, welche Lizenz, Abhängigkeiten |
| Eine Erweiterung aktivieren, Ladereihenfolge der Erweiterungen | sie einschalten, und wer gewinnt |
| composer.json für eine Erweiterung | sie mit Composer installieren |
| Einstellungen in einer Erweiterung | Ihre eigene INI-Datei und wie Sie sie lesen |
| Autoloads und Klassennamen | wie Ihre Klassen gefunden werden |
Seiten und Berechtigungen
| Kapitel | |
|---|---|
| Module und Views, View-Parameter | Seiten mit eigener Adresse |
| Richtlinienfunktionen und Zugriffsprüfungen | wer sie öffnen darf |
| View-Ergebnisse und das Pagelayout | was eine View zurückgibt |
Templates
| Kapitel | |
|---|---|
| Template-Operatoren, Fetch-Funktionen, Template-Funktionen | Templates neue Fähigkeiten geben |
Inhalte und Abläufe
| Kapitel | |
|---|---|
| Datentypen, Datentypen: Speicherung, Validierung und Templates | neue Arten von Feldern |
| Workflow-Ereignistypen, Trigger und Workflows für Entwickler | Schritte rund um das Veröffentlichen |
| Cronjob-Teile, CLI-Skripte und Console-Befehle | Arbeit außerhalb einer Anfrage |
| Fakten, Themes und Logos für die Systemkarte | Ihre Erweiterung in exp:expfetch, exp:info und exp:about aufnehmen |
Frontend
| Kapitel | |
|---|---|
| Ein Design in einer Erweiterung, CSS und JavaScript in einer Erweiterung | Templates und Assets |
| Ajax mit ezjscore-Serverfunktionen | dynamische Teile |
| Übersetzungen in einer Erweiterung | jeder Text in jeder Sprache |
Daten und das System
| Kapitel | |
|---|---|
| Persistente Objekte und eigene Tabellen, Datenbankschema, .dba-Dateien und Upgrades | Speicherung |
| Ereignisse, Listener und Filter, Handler, die über Einstellungen benannt werden, Kernel-Klassen-Overrides: der letzte Ausweg | das Verhalten des Systems ändern |
Qualität
| Kapitel | |
|---|---|
| Sicherheit in Erweiterungen, Content Security Policy für Autoren von Erweiterungen | von Haus aus sicher |
| Admin-Seiten im admin4-Stil | einheitliche Seiten in der Administration |
| Tests für Erweiterungen, Erweiterungen debuggen, Leistung in Erweiterungen | funktionierend und schnell |
| Ihre Erweiterung dokumentieren | einschließlich Hilfeseiten in diesem Hilfe-Center |
Tutorials
Tutorials: echte Erweiterungen Schritt für Schritt bauen: der Rundgang durch die RAD-Werkzeuge, dann jede Art von Erweiterung, einmal mit dem RAD-Assistenten und einmal von Hand gebaut, zum Abschluss eine Abschlusserweiterung von der Idee bis zum Release.
Bevor Sie beginnen
Sie sollten Teil 1 gelesen haben und die Werkzeuge des Builders aus Teil 2 kennen. Sie brauchen eine Entwicklungsinstallation mit eingeschalteter Debug-Ausgabe und grundlegende PHP-Kenntnisse.
Verwandte Seiten
- Zurück: Wenn Einstellungen nicht ausreichen
- Weiter: Der Verzeichnisaufbau einer Erweiterung
- Erweiterungen: finden, installieren, konfigurieren, bauen und veröffentlichen
- Erweiterungspunkte
- 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.