Exponential für CMS-Entwickler
Diese Seite richtet sich an Entwickler, die Websites bauen und Exponential noch nicht kennen. Sie zeigt das System im Überblick: was es ist, wie eine Installation organisiert ist, was eine Anfrage durchläuft und wie ein Website-Projekt üblicherweise aufgebaut ist. Die folgenden Seiten gehen auf jeden Teil im Detail ein.
Inhalt
- Was Exponential ist
- Woher es kommt
- Eine Installation auf der Festplatte
- Eine Anfrage, Schritt für Schritt
- Was mitgeliefert wird
- Wie ein Website-Projekt gebaut wird
- Was Sie zuerst lernen
Was Exponential ist
Exponential 6 ist ein Content-Management-System in PHP, für PHP 8.0 bis 8.5 (PHP 7.4 ohne Support nutzbar), lizenziert unter GPL 2.0 oder später
(composer.json im Hauptverzeichnis). Seine Kernideen:
- ein Inhaltsmodell, das Sie selbst festlegen: Klassen mit typisierten Attributen; jedes Element ist ein Objekt mit Versionen und Übersetzungen, platziert in einem Inhaltsbaum (Das Inhaltsmodell);
- Templates, die nach Regeln gewählt werden, in einer eigenen Template-Sprache, innerhalb von Designs, die in einer Kette aufeinander zurückfallen (Templates und Overrides für CMS-Entwickler);
- Siteaccesses: viele Websites, Sprachen und Oberflächen aus einer Installation und einer Datenbank (Siteaccesses und Multisite);
- Erweiterungen für alles, was ein Projekt hinzufügt, damit der Kernel unverändert bleibt (Erweiterungen, die Sie schreiben werden);
- Exponential Layouts für Seiten, die Redakteure aus Blöcken zusammenstellen (Layouts für CMS-Entwickler).
Woher es kommt
Exponential führt die Codebasis eines CMS fort, das sein Hersteller nach fast 18 Jahren eingestellt hat. 7x, das Unternehmen, das Exponential führt, veröffentlicht die Releases 6.0.x seit Anfang 2024, und die Exponential Foundation ist die gemeinnützige Organisation hinter dem Projekt; keine der beiden steht in Verbindung mit eZ Systems oder Ibexa (Wer ist 7x?, Wer ist die Exponential Foundation?). Entwickler, die eZ Platform oder Ibexa kennen, werden das Inhaltsmodell wiedererkennen: Umstieg von eZ Platform oder Ibexa.
Eine Installation auf der Festplatte
index.php the front controller
kernel/ the kernel: content, user, shop, workflow, setup ... modules and classes
lib/ libraries: template engine, database, INI, utilities
design/ shipped designs (standard, admin designs)
settings/ shipped default settings; never edited
override/ this machine's settings (database, mail, hosts); never committed
siteaccess/<name>/ settings of one siteaccess
extension/ every extension: shipped ones from Composer, and yours
var/ storage (uploaded files), caches, logs
bin/php/ command line scripts; bin/php/console is the consoleDie Übersicht mit jedem Verzeichnis und seinem Zweck: Die Landkarte für Entwickler und Verzeichnisse unter var.
Eine Anfrage, Schritt für Schritt
- Der Webserver (Velocity, FrankenPHP oder Apache bzw. nginx mit PHP-FPM) übergibt die Anfrage an Exponential.
- Der Siteaccess wird anhand des Hosts, des Ports oder des ersten Pfadelements gewählt; ab jetzt gelten seine Einstellungen.
- Der URL-Alias wird in ein Modul und eine View übersetzt, für Inhalte
content/view/full/<node id>. - Die View prüft die Berechtigungen und rendert dann: bei Inhalten das View-Template des Knotens, das die Override-Regeln wählen, oder die gespeicherte Kopie aus dem View-Cache.
- Das Ergebnis wird in das Pagelayout gesetzt, das ein Layout von Exponential Layouts darum zeichnen kann.
- Die Antwort geht hinaus und wird eventuell vom HTTP-Cache oder vom Antwort-Cache von Velocity für den nächsten Besucher aufbewahrt.
Jeder Schritt hat seine Seite: URL-Aliase und Routing, Sektionen, Rollen und Richtlinien, Caching für CMS-Entwickler.
Was mitgeliefert wird
| Bereich | Eingebaut oder in der Standarddistribution |
|---|---|
| Inhalte | 35 Kernel-Datentypen, Versionen, Übersetzungen, Relationen, Objektzustände, Papierkorb, Rich Text mit dem Online Editor |
| Website-Bau | Designs und Override-Regeln, Ansichtsmodi, Exponential Layouts, Seitenpakete mit Demo-Websites |
| Benutzer | Benutzerkonten als Inhalte, Gruppen, Rollen und Richtlinien, Registrierung, Zwei-Faktor-Anmeldung |
| Abläufe | Workflows (Freigabe, zeitgesteuertes Veröffentlichen), Cronjobs, Benachrichtigungen, Informationssammlung, ein Shop |
| Auslieferung | die REST-Schnittstelle (ezprestapi), expservices, RSS, Sitemaps, Suche (eingebaut oder Solr über eZ Find) |
| Betrieb | die Konsole (./console), Velocity, Caches auf mehreren Ebenen, Audit-Trail, Wartungsmodus |
| Datenbanken | SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle und MySQL (Datenbankunterstützung) |
Die Liste aller Funktionen der Versionsreihe 6.0: Funktionen von 6.0.
Wie ein Website-Projekt gebaut wird
| Schritt | Seite |
|---|---|
| Eine Entwicklungsinstallation einrichten | Entwicklungsumgebung |
| Das Inhaltsmodell entwerfen, dann die Klassen anlegen | Ein Inhaltsmodell entwerfen, Eine Inhaltsklasse anlegen |
| Design und Templates in Ihrer Erweiterung bauen | Templates und Overrides für CMS-Entwickler |
| Entscheiden, welche Seiten Redakteure mit Layouts zusammenstellen | Layouts für CMS-Entwickler |
| Rollen, Sprachen und Siteaccesses konfigurieren | Sektionen, Rollen und Richtlinien, Übersetzungen und Sprachen |
| Inhalte importieren | Inhalte importieren |
| Bereitstellen und starten | Eine Website bereitstellen, Checkliste für den Projektstart |
In jedem Projekt treffen sich zwei Arten zu bauen: Templates in einer Design-Erweiterung und der Layout-Editor ohne Code (Zwei Wege zum Bauen).
Was Sie zuerst lernen
Drei Gewohnheiten machen alles andere leichter: in Klassen und Knoten denken, nie mitgelieferte Dateien ändern und wissen, welcher Cache zu welcher Änderung gehört. Die Seite Lesepfade ordnet den Rest nach der Zeit, die Sie haben.
Verwandte Seiten
- CMS-Entwickler: hier beginnen
- Die Template-Sprache: was sie ist
- Erste Schritte
- 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.