Symfony-Anwendungen und Exponential
Eine eigene Symfony-Anwendung hält ihre Inhalte in Doctrine-Entitäten (oder einem anderen Speicher) und rendert sie mit Twig. Ein Wechsel zu Exponential ist eine Inhaltsmigration aus Ihrer eigenen Datenbank; bei Symfony zu bleiben und dabei ein Content-Repository zu gewinnen, ist eine Frage der Wahl einer Distribution von Exponential Platform.
Übersicht Migration · Checkliste · Zuordnung · Werkzeuge
1. Zuerst entscheiden: Exponential 6 oder eine Symfony-basierte Exponential Platform
| Ihr Team und Ihre Anwendung | Ziel |
|---|---|
| Die Anwendung besteht überwiegend aus Inhalten (Seiten, Artikel, Medien); das Team akzeptiert TPL und INI | Exponential 6, diese Anleitung |
| Das Team möchte bei Symfony und Twig bleiben und braucht ein Content-Repository | Exponential Platform DXP (Symfony 7.4) oder Nexus |
| Beides: Symfony-Controller für die Anwendung, die Legacy-Administration und TPL für die Inhalte | Platform Legacy |
| Die Anwendung hat Geschäftslogik über Inhalte hinaus (Buchungen, Konten) | behalten Sie die Anwendung; übertragen Sie nur ihre Inhalte und verbinden Sie beide (REST, gemeinsame Anmeldung) |
2. Von einer Symfony-Anwendung zu Exponential 6
- Die Entitäten zuordnen: Jede inhaltsartige Entität wird zu einer Klasse, ihre Spalten zu Attributen, Doctrine-Beziehungen zu Objektbeziehungen oder Positionen im Baum, Dateien (VichUploader, Flysystem, einfache Pfade) zu Bild- oder Dateiobjekten (Zuordnung).
- Aus der Anwendung selbst exportieren: ein Symfony-Konsolenbefehl in der Anwendung, der die Entitäten über Doctrine
lädt (in Stapeln, wobei der Entity Manager zwischen den Stapeln geleert wird) und JSON-Zeilen mit Remote-IDs
(
app-<entity>-<id>), dem gerenderten oder rohen Rich Text und der Route jedes Elements schreibt (aus dem Router, damit die alten Adressen exakt stimmen). - Importieren Sie auf dem Exponential-Server mit dem Skript-Grundgerüst oder dem Importer von xrowextract.
- Twig zu TPL: Die Templates werden neu geschrieben; 17.5 ordnet die Konstrukte einander zu.
- Benutzer: Der
PasswordHashervon Symfony mit den Algorithmenauto,bcryptodersodiumschreibt Standardwerte von PHPspassword_hash()($2y$...,$argon2id$...), die Exponential als Typ 7 prüfen kann (Zuordnung, 6); testen Sie mit einigen Konten. Andere Hasher bedeuten Zurücksetzungen. - Routen: Jede Route, die Inhalte ausgeliefert hat, wird zu einem Knoten-Alias oder einer Weiterleitung.
3. Eine Symfony-Anwendung neben Exponential betreiben
Wenn die Anwendung ihre Funktionen jenseits der Inhalte behält:
- Liefern Sie beide unter einer Domain aus, wobei der Webserver die Pfade jeweils zuweist, oder unter Subdomains.
- Lassen Sie die Anwendung Inhalte über REST mit einem persönlichen API-Schlüssel aus Exponential lesen (REST API v1 und v2).
- Anmeldung: Halten Sie sie getrennt, oder verwenden Sie für beide denselben Identity Provider.
4. Von Exponential zu einer Symfony-Anwendung
Exportieren Sie mit xrowextract nach JSON (Migration weg von Exponential) und laden Sie es mit einem Doctrine-Befehl; oder wechseln Sie als Symfony-Team zu einer Distribution von Exponential Platform mit demselben Inhaltsmodell, die das Content-Repository und seine Werkzeuge behält.
5. Checkliste
- To do: Ziel gewählt (Exponential 6, DXP, Nexus, Platform Legacy oder Anwendung plus Content-Site).
- To do: Zuordnung der Entitäten geschrieben; Exportbefehl in der Anwendung; Routen aus dem Router exportiert.
- To do: Mit Remote-IDs importiert; Templates neu geschrieben; Passwort-Hashes getestet.
- To do: Weiterleitungen für jede Inhaltsroute; REST-Zugriff für die verbleibende Anwendung.
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.
Diese Seite ist Teil der Exponential-Dokumentation und freie Dokumentation unter der GNU Free Documentation License 1.3 oder einer späteren Version (die Lizenz dieser Dokumentation).