Softwareingenieure: hier beginnen #
Dieser Bereich der Hilfe richtet sich an Softwareingenieure, gleich in welcher Sprache Sie sonst schreiben: an Menschen,
die Exponential für ein Projekt bewerten, ein System darum herum entwerfen, es in der Produktion betreiben, Änderungen
daran prüfen oder Code zurückgeben. Er erklärt das System als System: seine Teile und ihre Verträge, wie eine Anfrage
hindurchläuft, wo Daten liegen, welche Caches wo sitzen, wie es ausgeliefert, getestet, veröffentlicht und abgesichert
wird und welche Dokumente für jeden dieser Punkte maßgeblich sind.
Diese Seiten wiederholen nicht die ausführlichen Anleitungen. Sie geben Ihnen die technische Sicht und verweisen auf die
Seite mit den Details, meist in doc/eng-us/standards/, doc/eng-us/bc/6.0/, doc/eng-us/features/6.0/ oder den
Anleitungen. Wo die Quellen eine Frage nicht beantworten, sagen die Seiten das, statt zu raten.
Inhalt #
- Exponential in einem Absatz
- Ihre erste Stunde
- Fünf technische Regeln
- Übersicht der Seiten für Softwareingenieure
- Seiten anderer Zielgruppen, die Sie nutzen werden
- Diese Seiten wiederfinden
Exponential in einem Absatz #
Exponential ist ein freies, quelloffenes PHP-Content-Management-System und Anwendungs-Framework, lizenziert unter der
GNU GPL, Version 2 oder später. Sein README nennt es "a professional PHP application framework with advanced CMS (content
management system) functionality", dessen bemerkenswerteste Eigenschaft "its fully customizable and extendable content
model" ist. Der Kernel (kernel/, lib/) läuft auf PHP 8.0 bis 8.5 (PHP 7.4 ohne Support nutzbar), speichert Inhalte in SQLite 3 (Standard),
PostgreSQL, MongoDB, MariaDB, Oracle oder MySQL, gibt über seine eigene Template-Sprache aus und wird über Erweiterungen
in extension/ erweitert. Seit 6.0.15 liefert es einen eigenen Anwendungsserver mit, Exponential Velocity, neben Apache
oder nginx mit PHP-FPM und FrankenPHP. Die Codebasis wurde ab 1999 entwickelt, zuerst unter dem Namen eZ Publish, einem
Produkt, das sein Hersteller nach fast 18 Jahren eingestellt hat; heute führt 7x die Entwicklung, und die Exponential
Foundation betreibt und finanziert das Projekt (Wer ist 7x?,
Wer ist die Exponential Foundation?).
Ihre erste Stunde #
- Die Gestalt erfassen (10 Minuten): Exponential für Softwareingenieure
und Architekturüberblick.
- Einer Anfrage folgen (10 Minuten): Der Lebenszyklus einer Anfrage.
- Wissen, wo Zustand liegt (10 Minuten): Datenbanken: eine wählen und betreiben
und Caching-Ebenen für Ingenieure.
- Wissen, wie es läuft (10 Minuten): Anwendungsserver und
Nebenläufigkeit, Statics und langlebige Prozesse.
- Wissen, wie Änderungen kontrolliert werden (10 Minuten): Teststrategie,
CI-Gates und Release Engineering.
- Den Sicherheitsvertrag kennen (10 Minuten): Sicherheitstechnik im Überblick.
Fünf technische Regeln #
- Ändern Sie nie
kernel/, lib/ oder eine andere Erweiterung an Ort und Stelle. Eine Aktualisierung ersetzt
sie. Verwenden Sie die Erweiterungspunkte; ein Override einer Kernel-Klasse ist das letzte Mittel
(Events, Erweiterungspunkte und Plugins). - Gehen Sie von einem langlebigen Prozess aus. Unter Velocity bedient ein Worker viele Anfragen: keine Daten je
Anfrage in Statics ohne Zurücksetzen, idempotente Registrierungen
(Nebenläufigkeit, Statics und langlebige Prozesse).
- Schreiben Sie für jede Datenbank. Gehen Sie über
eZDB::instance(), maskieren und casten Sie, und liefern Sie
Schemaänderungen für jeden Treiber mit (Portables SQL schreiben). - Ein veröffentlichter Tag ändert sich nie. Ein Fehler in einem Release wird durch die nächste Version behoben,
nie durch Verschieben eines Tags (Versionsnummern und unveränderliche Tags).
- Jeder Bruch hat Upgrade-Hinweise. Eine Änderung, die von einer Installation eine Handlung verlangt, erhält eine
Seite in
doc/eng-us/bc/6.0/ (Richtlinie zur Rückwärtskompatibilität).
Übersicht der Seiten für Softwareingenieure #
Orientierung #
Architektur #
| Seite | Wobei sie Ihnen hilft |
|---|
| Architekturüberblick | die Schichten und ihre Verantwortlichkeiten sehen |
| Der Lebenszyklus einer Anfrage | einer Anfrage von index.php bis zur Antwort folgen |
| Kernel, lib und Erweiterungen: die Schichtung | wissen, welcher Code von welchem abhängen darf |
| Siteaccesses und Konfiguration | die INI-Kaskade und die Siteaccess-Zuordnung verstehen |
| Module, Views und Zugriffskontrolle | Routing und das Berechtigungsmodell verstehen |
| Das Inhaltsmodell für Ingenieure | Klassen, Objekte, Versionen, Knoten und Datentypen verstehen |
| Persistenz und die Datenbankschicht | eZDB und eZPersistentObject verstehen |
| Die Template-Engine und die Design-Kette | kompilierte Templates, Overrides und Designs verstehen |
| Events, Erweiterungspunkte und Plugins | erweitern, ohne zu forken |
| Konsole, Cronjobs und Hintergrundarbeit | Arbeit außerhalb einer Webanfrage ausführen |
Daten #
Laufzeit, Leistung und Skalierung #
Betrieb #
Qualität #
Release Engineering und Kompatibilität #
Sicherheit #
Schnittstellen und Zusammenarbeit #
Seiten anderer Zielgruppen, die Sie nutzen werden #
Diese Seiten wiederfinden #
- Filtern Sie in der Hilfe nach der Zielgruppe Softwareingenieure, oder öffnen Sie Alle Seiten und den Ordner
softwareingenieure. - Jede Seite hat Auf GitHub bearbeiten. Ist eine Aussage hier falsch oder veraltet, korrigieren Sie sie dort; die
Seiten werden wie Code geprüft (Dokumentation als Code).
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.