Exponential und ein Framework kombinieren
Diese Seite richtet sich an Teams, die Exponential für Inhalte und ein Framework für etwas anderes einsetzen möchten. Vier Muster decken die meisten Projekte ab. Jedes folgt einer Regel: Inhalte werden über die Inhalts-API von Exponential geschrieben, damit Versionen, Caches, Berechtigungen und Suche konsistent bleiben.
Inhalt
- Muster 1: Exponential als Inhalts-Backend
- Muster 2: ein Framework-Dienst, der aus Exponential aufgerufen wird
- Muster 3: Exponential innerhalb von Symfony
- Muster 4: Bibliotheken innerhalb einer Erweiterung
- Benutzer auf beiden Seiten
- Eine Domain, zwei Anwendungen
- Regeln
Muster 1: Exponential als Inhalts-Backend
Die Framework-Anwendung (Laravel, Django, Rails, ein Node.js-Frontend) rendert die Seiten und liest Inhalte über die
REST-API von Exponential, mit dem API-Schlüssel eines Integrationsbenutzers oder einem OAuth2-Client; Redakteure
arbeiten in der Administrationsoberfläche von Exponential
(Headless und entkoppelte Frontends). Leeren Sie den Cache des Frameworks beim
Veröffentlichen mit einem content/cache-Listener oder einem Workflow-Ereignis, das das Framework aufruft.
Muster 2: ein Framework-Dienst, der aus Exponential aufgerufen wird
Ein Dienst, der in einem anderen Framework geschrieben ist (Abrechnung, eine Empfehlungs-Engine, ein Suchindex), wird
aus einer Exponential-Erweiterung aufgerufen: Eine Klasse kapselt die HTTP-Aufrufe, ein expqueue-Job führt sie im
Hintergrund aus, und ein Workflow-Ereignis oder ein Listener stellt den Job nach dem Veröffentlichen in die
Warteschlange (Warteschlangen). Der Dienst ruft über die REST-API oder expservices
zurück, wenn er Inhalte ändern muss.
Muster 3: Exponential innerhalb von Symfony
Die Legacy Bridge lädt den Kernel von Exponential 6 innerhalb einer Installation der Symfony-Plattform: Symfony-Controller und Twig für die öffentliche Website, die Legacy-Administrationsoberfläche für Redakteure, eine Datenbank (Die Symfony Legacy Bridge). Dies ist das einzige Muster mit einem Prozess für beide Seiten, und dasjenige mit den meisten beweglichen Teilen beim Aktualisieren.
Muster 4: Bibliotheken innerhalb einer Erweiterung
Viele Framework-Komponenten sind gewöhnliche Composer-Bibliotheken (HTTP-Clients, Validatoren, Markdown-Parser,
Mailer). Binden Sie sie in der composer.json Ihrer Erweiterung ein; autoload.php lädt den Autoloader von Composer,
sodass Ihre Klassen sie verwenden können. Halten Sie Framework-spezifische Laufzeitbestandteile (einen Container,
einen Router, eine ORM-Verbindung) aus dem Request-Pfad des Kernels heraus.
Benutzer auf beiden Seiten
Exponential verwaltet eigene Benutzer (Inhaltsobjekte) und Sitzungen (Authentifizierung). Möglichkeiten, wenn beide Seiten dieselben Personen benötigen:
- Die Framework-Seite tritt über die REST-API als ein einzelner Integrationsbenutzer mit eigener Rolle auf.
- Die Framework-Seite lässt sich von den Benutzern über den OAuth2-Server von Exponential autorisieren (OAuth und API-Schlüssel).
- Exponential prüft Anmeldedaten über einen eigenen Login-Handler gegen ein anderes System (Login-Handler für Benutzer).
Planen Sie dies frühzeitig; es gibt kein fertiges Single Sign-on zwischen Exponential und einer Framework-Anwendung.
Eine Domain, zwei Anwendungen
Ein Reverse Proxy kann Pfade an zwei Anwendungen weiterleiten (/shop/ an ein Framework, alles andere an
Exponential). Dann gilt: Tragen Sie den Proxy in TrustedProxies[] ein, halten Sie die Cookie-Namen getrennt
([Session] SessionNamePrefix), und stellen Sie sicher, dass die URL-Aliase von Exponential niemals die Pfade der
anderen Anwendung belegen (Hinter einem Reverse Proxy).
Regeln
- Inhalte werden über die Inhalts-API geschrieben (
eZContentFunctions, REST, expservices), niemals per SQL in die Inhaltstabellen. - Jede Seite besitzt ihre eigenen Tabellen; teilen Sie Daten über APIs, nicht über Fremdschlüssel.
- Verweisen Sie von der anderen Seite aus über Remote-IDs auf Inhalte; numerische IDs unterscheiden sich zwischen Installationen.
- Testen Sie die Integration bei jedem Release einer der beiden Seiten.
Verwandte Seiten
- Wann Sie Exponential wählen sollten
- Entfernte Dienste mit expservices
- Die Plattformprodukte
- 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.