Anleitungen: der Lernpfad
Diese Seite ist das Inhaltsverzeichnis der Anleitungen. Lesen Sie sie, wenn Sie neu bei Exponential sind oder wenn Sie das System kennen und den kürzesten Weg zu einem bestimmten Ergebnis suchen.
Warnung
.htaccessbremst jede Anfrage. Sind.htaccess-Dateien erlaubt (AllowOverridealles außerNone), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten:AllowOverride Noneim virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auchstaticcache_offload.conf), setzen SieAllowOverride None, führen Sieapachectl configtestaus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Eine Anleitung ist ein Tutorial. Sie arbeiten sie von oben nach unten durch und brauchen kein Vorwissen. Am Ende haben Sie ein funktionierendes Ergebnis: eine installierte Site, eine veröffentlichte Seite, ein geändertes Template, eine Site hinter einem echten Webserver, einen gezielt geleerten Cache. Jeder Schritt ist ein Befehl oder ein Klickpfad, mit der zu erwartenden Ausgabe. Wo ein Thema mehr Tiefe braucht, verweist die Anleitung auf die Funktionsseite, die Spezifikation oder den Upgrade-Hinweis.
Kurz gesagt
- Beginnen Sie mit Erste Schritte. In zehn bis fünfzehn Minuten haben Sie eine installierte Site, einen Login und eine erste Template-Änderung.
- Wählen Sie dann unten Ihren Weg: Redakteure, Site-Gestalter, Entwickler oder Betreiber.
- Ein Wort unklar? Das Glossar erklärt jeden Begriff in einer Zeile und verweist auf die Seite, die ihn vermittelt.
- Sie möchten wissen, warum etwas so ist, wie es ist? Die Geschichte erzählt sie Monat für Monat.
Die eigene Einrichtung in zwei Minuten prüfen
Diese Befehle lesen nur. Führen Sie sie im Wurzelverzeichnis der Installation aus (dem Verzeichnis mit console, index.php und
settings/). Ergänzen Sie --allow-root-user bei einem Befehl, der die Ausführung als root verweigert.
./console --versionErwartet: Die erste Zeile lautet console (Exponential) 6.0.15stable. Darunter stehen die Version, der Build, die
Anzahl der Extensions, der Webserver und die PHP-Version, und am Ende die Zeile
Written by the Exponential Foundation and 7x (se7enx.com).
./console list expErwartet: die Liste der Befehle der Familie exp:, je eine Zeile (exp:cache, exp:install, exp:ini,
exp:maintenance, exp:velocity und viele mehr). ./console help <command> erklärt jeden einzelnen davon.
./console exp:cache clear --all --dry-run --allow-root-userErwartet: die Liste der Caches, die ein echtes Leeren leeren würde, mit einer abschließenden Zeile, die mit
DRY RUN PASS beginnt und die Anzahl der Caches nennt. Es wird nichts geleert.
./console exp:maintenance status --allow-root-userErwartet: auf einer normalen Site die Zeile Maintenance is off..
Schlägt der erste Befehl fehl, sind Sie nicht im Wurzelverzeichnis der Installation, oder PHP fehlt. Erste Schritte sagt, was nötig ist.
Die Anleitungen
Lesen Sie sie beim ersten Mal in dieser Reihenfolge. Jede steht aber auch für sich.
| Anleitung | Am Ende haben Sie | Zeit |
|---|---|---|
| Erste Schritte | Eine installierte Site, den Administrator-Login, eine erste Seite, eine erste Template-Änderung | 10 bis 15 Minuten |
| Das Inhaltsmodell und das Bearbeiten von Inhalten | Eine Inhaltsklasse, ein Objekt, die Tabelle der Unterelemente, den Papierkorb, einen Inhaltsjob | 30 Minuten |
| Twig-Templates: Leistung (Geschwindigkeit) | Was .twig schnell macht, gecachte und ungecachte Seiten auf Apache und Velocity mit ihrer Last gemessen, der Leistungswächter, eigene Seiten messen | 20 Minuten |
| Geschwindigkeit der drei Template-Engines | Twig, Smarty und Exponential-Templates gecacht, ungecacht und mit Debug-Ausgabe gemessen, mit den Bedingungen jedes Laufs, wo eine Anfrage ihre Zeit verbringt, was in Arbeit ist und wie man es wiederholt | 20 Minuten |
| Twig-Templates für Exponential nativ schreiben | Template-Vererbung zusammen mit Override-Regeln, include, embed und expinclude, Makros, Filter, Funktionen und Tests, Autoescape und |raw, Whitespace-Steuerung, die Sandbox, die Variablen jedes Templates | 30 Minuten |
| Twig-Templates: Rezepte | Ein Pagelayout, eine Zeilenansicht, ein Layouts-Block, ein Mail-Template, Cache-Blöcke je Rolle und je Benutzer, ein Formular mit Formular-Token, Texte mit einer Anzahl, Bilder in einem Alias | Referenz |
| Fehlersuche in Twig-Templates | Fehler finden, bevor es eine Seite tut, die Meldung in der Seite Zeile für Zeile lesen, Kommentare mit Template-Pfaden, die Debug-Leiste, das Twig-Profil, Twigs Debug-Modus, eine Änderung, die sich nicht zeigt | 20 Minuten |
| Twig-Templates im Editor | Syntaxhervorhebung und Dateiendungen, was die Twig-Prüfungen eines Editors nicht wissen, exp:template:check im Editor, Formatierung, Snippets | 15 Minuten |
| Twig-Templates: Versionen, Upgrades und Kompatibilität | Welches Twig auf welchem PHP läuft und was Composer installiert, fehlendes Twig, Upgrades von Twig, PHP und Exponential, Velocity | 15 Minuten |
| Template-Syntax prüfen | exp:template:check für .tpl, .stpl und .twig: Ziele, Stufen, Ausgabeformate, Baselines, CI und Hooks, jede Regel (Regeln) | 15 Minuten, dazu die Referenz |
| Templates zwischen Template-Engines konvertieren | Ein Template oder ein ganzes Design zwischen Exponential-Templates (.tpl) und Smarty-Templates (.stpl) mit exp:template:convert konvertiert: jede Option, die Ausgabe und die Exit-Codes, die Markierung, die Handänderungen schützt, die Override-Einstellungen, dasselbe aus PHP | 15 Minuten, dazu die Referenz |
| Templates und Design | Das Design, das Sie verwenden, das Template, das ein Stück einer Seite geschrieben hat, einen Override, den Sie rückgängig machen können, das Design admin4 | 15 Minuten |
| Extensions | Eine Extension gefunden, installiert, eingeschaltet und konfiguriert; eine eigene gebaut und veröffentlicht | 45 Minuten |
| Die Seite „Extensions“ | Extensions in einer einzigen Liste aktiviert, deaktiviert und sortiert, die Änderungen mit ihren Risiken geprüft und angewendet, die geschriebene und die tatsächliche Ladereihenfolge auseinandergehalten | 10 Minuten |
| Eine Extension dokumentieren | README.md und INSTALL.md oben in der Extension, jede weitere Seite als Markdown (.md) in ihrem doc/, auf Englisch; die Seiten im Hilfecenter mit Reihenfolge, Titeln und Kontexthilfe; ein altes Klartextdokument in Markdown umgewandelt | 20 Minuten |
| Bereitstellung | Die Site ausgeliefert von Apache mit PHP-FPM, von Velocity oder von FrankenPHP, mit HTTPS | 30 Minuten |
| .htaccess und config.php von der Konsole aus einrichten | .htaccess und config.php aus ihren Vorlagen kopiert, mit Sicherung und ohne stilles Überschreiben, eine Einstellung in config.php ohne Editor gelesen, gesetzt und entfernt, die Dateien nach einem Upgrade mit den neuen Vorlagen verglichen | 10 Minuten |
| Betrieb einer Site | Die richtigen Caches geleert, Cronjobs in Betrieb genommen, den statischen Cache und Preload eingeschaltet, eine Sicherung, eine Checkliste | 30 Minuten |
| Systeminformationen | Welcher Server geantwortet hat und wie er PHP ausführt, die Zustandsprüfungen gelesen und umgesetzt, die Übersichtskarten verstanden, einen maskierten Bericht für den Support heruntergeladen, dasselbe über die Kommandozeile | 15 Minuten |
| Caches | Jeden Cache in seiner Gruppe gelesen, mit seinem Inhalt, seiner Größe und dem Zeitpunkt der letzten Leerung, ein Cache, eine Gruppe oder alle geleert mit der Bestätigung, die nennt, was wegfällt, Velocitys Antwort-Cache und Neustart verstanden, dasselbe aus einer Shell | 15 Minuten |
| Benchmarks | Seiten gemessen, aus dem Cache und gerendert, Apache gegen Velocity, eine Codeänderung und eine Bereitstellung auf Rückschritte geprüft, die Performance-Prüfung der CI verstanden | 30 Minuten |
| Cronjobs | Jeden Teil und jedes Skript gesehen, einen Teil und ein einzelnes Skript ausgeführt und im Browser verfolgt, die Crontab-Zeilen installiert, die Logs gelesen, die üblichen Probleme gelöst | 30 Minuten |
| Caches vorwärmen | Eine Site über Setup > Vorladen und aus der Shell vorgewärmt, einen Probelauf gelesen, einen Lauf verfolgt und seine defekten Links und Bild-Aliase gelesen, die Cron-Zeile installiert, die Adresse eines Siteaccess geprüft | 15 Minuten |
| Statische Websites auf GitHub Pages hosten mit Exponential 6.0.15+ | Eine kostenlose öffentliche Kopie einer Website: ein Ziel eingerichtet, ein Build, ein Probelauf, eine Vorschau unterhalb des Repository-Pfads, die Linkprüfung, der Push in einen Pages-Branch, die Befehle in CI | 20 Minuten |
| Statisches Veröffentlichen: Repositorys und Zugangsdaten | Der Ordner des Ziels als sein Git-Repository, ein Commit und Tag pro Veröffentlichung, ein Token oder Deploy-Key, der nie auf eine Befehlszeile oder in ein Log gelangt, wartende Pushes erneut gesendet | 20 Minuten |
| Statisches Veröffentlichen: Verlauf und Zurücknehmen | Die Veröffentlichungen eines Ziels, und eine frühere wieder online als neuer Commit und Tag, der Verlauf bleibt | 10 Minuten |
| Statisches Veröffentlichen: dynamische Funktionen | Was eine statische Kopie nicht kann und ihr Ersatz, Suchindex und Suchseite, der Formular-Endpunkt, Weiterleitungsseiten, Veröffentlichen beim Veröffentlichen von Inhalten und nach Zeitplan | 20 Minuten |
| Statisches Veröffentlichen: SSH-Deploy-Keys | Ein Schlüssel für ein Repository, von Exponential erzeugt, die private Hälfte im Geheimnisspeicher, die öffentliche beim Git-Host | 10 Minuten |
| Statisches Veröffentlichen: ein Überblick für Administratoren | Ziele, Builds, Veröffentlichungen, Verlauf und Trigger; was eine Installation braucht; eine Checkliste zum Einschalten | 10 Minuten |
| Statisches Veröffentlichen: eigene Domains und DNS | Eine Kopie unter Ihrer eigenen Domain: CNAME, die DNS-Einträge, die DNS-Prüfung, HTTPS | 15 Minuten |
| Statisches Veröffentlichen: CI und GitHub Actions | Die Befehle in einem CI-Job, der Pages-Workflow Zeile für Zeile erklärt, die Startvorlage | 20 Minuten |
| Statisches Veröffentlichen: Fehlerbehebung | Symptome bei Einstellungen, Builds, Pushes und GitHub Pages, mit Ursache und Lösung | 10 Minuten |
| Statisches Veröffentlichen: Grenzen und GitHub-Bedingungen | Die vor jedem Push geprüften Größengrenzen, ein kleinerer Build, welche Sites auf GitHub Pages gehören | 10 Minuten |
| Statisches Veröffentlichen für Multisite-Installationen | Ein Ziel je Siteaccess und Sprache, gemeinsame Zugangsdaten, Richtlinien je Ziel | 15 Minuten |
| Statisches Veröffentlichen unter Windows und in Clustern | Git, Pfade und Zeilenenden unter Windows, Bauen auf einem Cluster-Knoten, Velocity | 10 Minuten |
| Vom statischen Cache zum statischen Veröffentlichen | Beide Funktionen verglichen, welche wann, eine Site umstellen | 15 Minuten |
| Öffentlich entwickeln, kostenlos veröffentlichen | Tutorial: der Code in einem öffentlichen Repository, Inhalte in Exponential, die Kopie auf GitHub Pages, Veröffentlichen von selbst | 30 Minuten |
| Ein statisches Blog mit Exponential | Tutorial: Beiträge, Blättern, Suche und neue Beiträge, die sich selbst veröffentlichen | 30 Minuten |
| Eine statische Dokumentations-Site | Tutorial: Suche, Sitemap, Weiterleitungen von alten Adressen, eine Linkprüfung, Veröffentlichen mit jedem Release | 30 Minuten |
| Von einer statischen HTML-Site zu Exponential und zurück zu statisch | Tutorial: Design und Inhalte übernommen, alte .html-Adressen weitergeleitet, dieselbe Adresse behalten | 60 Minuten |
| Benutzerverwaltung von der Konsole | Konten mit exp:user aufgelistet, angesehen, angelegt, geändert, deaktiviert, aktiviert und entfernt; Passwörter zurückgesetzt, ohne eines auf einer Befehlszeile; Registrierungen freigegeben; dasselbe in Skripten mit --format=json | 20 Minuten |
| Seiten-Caching mit LiteSpeed und OpenLiteSpeed | Den Seiten-Cache eines LiteSpeed- oder OpenLiteSpeed-Servers für anonyme Besucher und Crawler ohne Plugin eingeschaltet, aus .htaccess, dem virtuellen Host oder einem Control Panel; einen Treffer in den Headern gesehen und gesehen, dass eine angemeldete Anfrage nie einer ist, Seiten geleert, die üblichen Probleme gelöst | 20 Minuten |
| Workflows | Eine Freigabe vor dem Veröffentlichen mit ihrem Trigger eingerichtet, jeden wartenden Prozess unter Setup > Workflow-Prozesse in Worten gelesen, den Workflow-Cronjob geprüft, einen hängenden Prozess sicher abgebrochen, die Trigger und Workflow-Gruppen gelesen und eine Gruppe entfernt im Wissen, was mit ihr wegfällt | 30 Minuten |
| Wartungsmodus | Die Site für ein Zeitfenster vom Netz genommen, mit einer Meldung, einem voraussichtlichen Ende und durchgelassenen Testern, die Vorschau geprüft, die Site über die Seite und aus einer Shell zurückgeholt, die üblichen Aussperrungen gelöst | 20 Minuten |
| Sicherheit und Audit | Die Härtung geprüft, Rollen, die nur das Nötige geben, das Audit-Protokoll gelesen, Debug-Ausgabe nur für Ihre Adresse | 30 Minuten |
| Zweistufige Anmeldung | Einen Code aus einer Authenticator-App oder per E-Mail nach dem Passwort: von einem Benutzer eingerichtet, vom Eigentümer eingeschaltet oder vorgeschrieben, ein verlorenes Telefon behandelt, Schaltflächen für Social Login | 15 Minuten |
| Passkeys | Einen Passkey unter Mein Konto hinzugefügt, benannt und entfernt, mit der Schaltfläche oder dem Autofill des Browsers angemeldet, ein verlorenes Gerät behandelt; die Einstellungen, die Tabelle und wie ein Passkey geprüft wird | 15 Minuten |
| Identität bestätigen | Die Frage vor heiklen Aktionen: die fünf Gruppen und ihre Regeln, Inhalte unter Setup eingeschaltet, eine Regel für die Ansicht einer Extension ergänzt, was mit der Anfrage geschieht, wo nie gefragt wird | 15 Minuten |
| Die Einstellungsseite | Die Herkunft jedes INI-Werts unter Setup > INI-Einstellungen mit seiner Override-Kette gelesen, eine Einstellung in jeder Datei gefunden, zwei Siteaccesses verglichen, ein Wert geändert und seine Wirkung unter PHP-FPM und Velocity gesehen, Geheimnisse maskiert gehalten | 20 Minuten |
| RSS-Feeds | Jeden Export und Import auf der überarbeiteten RSS-Seite gelesen, mit Adresse, Quellen, Einträgen und letztem Lauf, den Import-Cronjob geprüft, einen Feed entfernt im Wissen, was das für seine Leser bedeutet | 20 Minuten |
| Seitenaufrufe zählen | Seitenaufrufe aus den Zugriffsprotokollen gezählt, für eine Site, für Siteaccesses mit eigenen Protokollen und für viele Siteaccesses in einem Protokoll; warum der Cronjob für mehrere Sites neu gebaut wurde, ein Probelauf gelesen, Rotation, Robots und die Umstellung vom bisherigen Cronjob | 20 Minuten |
| Klassengruppen | Jede Klassengruppe mit ihren Klassen und Objekten gelesen, bevor sie angehakt wird gewusst, was das Entfernen einer Gruppe entfernen würde, eine Gruppe sicher entfernt | 15 Minuten |
| Datentypen | Jeden Datentyp des Kernels und der Extensions mit Anbieter, Klasse und Merkmalen gelesen, wie viel der Inhalte ihn nutzt, ein Datentyp mit Templates, Klassen und Knoten, und Inhalte, deren Datentyp nichts registriert, gefunden und repariert | 15 Minuten |
| Sektionen | Sektionen verstanden und auf den überarbeiteten Seiten gesehen, eine angelegt, Inhalte ihr zugewiesen, eine Rolle auf sie beschränkt, ein Template für sie überschrieben, eine ungenutzte entfernt, die üblichen Probleme gelöst | 30 Minuten |
| Rollen, Richtlinien und nicht aktivierte Benutzer | Jede Rolle gelesen mit dem, was sie gibt und wem, ihre Richtlinien als Sätze, eine Rolle mit eingeschränkten Richtlinien gebaut und per Drag and Drop sortiert, einer Gruppe zugewiesen, und unvollständige Registrierungen aktiviert, erneut gemailt oder entfernt | 25 Minuten |
| Neue Redakteurskonten freigeben | Die Freigabe neuer Redakteurskonten mit adduserapproval.php eingerichtet oder geprüft, das neue Konto eines Redakteurs von der Anfrage bis zur Mail mit ihrem Link verfolgt, in der Administration freigegeben und abgelehnt, das verweigerte Verschieben und die Einträge im Prüfprotokoll gelesen, im Workflow-Ereignis geändert, wer was freigibt | 15 Minuten |
| Der Design-Umschalter der Administration | Die Designs eingerichtet, die ein Benutzer für seine eigene Sitzung wählen darf, ein installiertes oder Extension-Design mit seiner Fallback-Kette hinzugefügt, das Umschaltwerkzeug in jedem angebotenen Design, uiswitch/design einer Rolle gegeben, den Umschalter getestet und die üblichen Probleme gelöst | 20 Minuten |
| Pakete | Jedes Repository und Paket unter Setup > Pakete gelesen, mit Installationszustand, Größe und Abhängigkeiten, die eigenen Pakete des Installationsprogramms erkannt, ein Paket im klassischen oder im JSON-Format heruntergeladen, einen Upload vor der Annahme validiert, ein Paket im Hintergrund oder als Entwürfe installiert, ein Paket entfernt im Wissen, was wegfällt | 20 Minuten |
| Klassische Menüs | Ob für Ihren Siteaccess Design > Menüs (klassisch) zählt oder Layouts, die vier Anordnungen und was jede auflistet, fünf Rezepte mit ihren genauen Zeilen, klassische Menüs aus eigenen Templates gezeichnet | 20 Minuten |
| Sitzungen | Wer sich kürzlich angemeldet hat und wer gerade angemeldet ist, den Session-Handler verstanden, Sitzungen gesucht, sortiert und sicher entfernt, ohne sich selbst abzumelden | 15 Minuten |
| Ihre Geräte und Sitzungen | Jedes bei einem Konto angemeldete Gerät mit Browser, Ort und Anmeldemethode gelesen, ein Gerät oder alle anderen endgültig abgemeldet, die E-Mail über ein neues Gerät ab- oder angeschaltet, ein Benutzer von einem Administrator überall abgemeldet | 10 Minuten |
| Lesezeichen | Ihre Lesezeichen nach Ordnern gruppiert mit ihrem Zustand gelesen, gefunden, sortiert und geblättert, durch Auswählen oder Ziehen zwischen Ordnern verschoben, einen Ordner umbenannt und entfernt im Wissen, was mit seinem Inhalt geschieht, die üblichen Probleme gelöst | 15 Minuten |
| Versionen eines Objekts | Die Versionen eines Eintrags nach Status, Übersetzung und Ersteller gelesen, zwei verglichen, aus einer alten Version einen neuen Entwurf in der gewählten Übersetzung erzeugt, Versionen entfernt im Wissen, was bleibt, wer was sieht | 15 Minuten |
| Meine Entwürfe und meine ausstehenden Einträge | Ihre Entwürfe nach Übersetzung, Klasse und Alter gefunden und einzeln, per Auswahl oder wenn sie alt sind entfernt, Ihre ausstehenden Versionen mit dem gelesen, was sie aufhält, die Versionen geöffnet, die auf Ihre Freigabe warten | 10 Minuten |
| Gesammelte Informationen | Die Formulare, die Daten gesammelt haben, gefunden und sortiert, ihre Sammlungen gelesen und als CSV exportiert, Sammlungen nach einem Export entfernt, die üblichen Probleme gelöst | 15 Minuten |
| PDF-Exporte | Ein PDF aus einem Teil des Inhaltsbaums erstellt, einmalig oder bei Bedarf erzeugt, aus der Liste heruntergeladen und neu erzeugt, sein Formular fehlerfrei ausgefüllt, einen Export entfernt im Wissen, welche Datei mit ihm wegfällt | 15 Minuten |
| Links, URL-Aliase, Platzhalter und Suchstatistiken | Defekte und ungeprüfte Links mit den Objekten gefunden, die sie verwenden, Links von Hand markiert, einen globalen Alias und einen Platzhalter angelegt und ausprobiert, die Suchbegriffe gelesen, die nichts finden, die üblichen Probleme gelöst | 30 Minuten |
| URL-Zuordnungen: Import, Export und Rückgängig | Eine Datei mit alten Adressen Zeile für Zeile in der Vorschau geprüft und als ein Import übernommen, ein Import aus der Historie zurückgenommen, die URL-Zuordnung exportiert, die Weiterleitungen mit Abfrage gelistet und entfernt | 15 Minuten |
| Objektzustände | Eine Zustandsgruppe mit ihren Zuständen, sortiert und übersetzt, Inhalte einzeln und nach Teilbaum zwischen Zuständen verschoben, Rollen, die Zustände je Stufe lesen, bearbeiten und setzen, ein Prüf-Workflow, die üblichen Probleme gelöst | 30 Minuten |
| Eigentümer ändern | Den Eigentümer eines Objekts und eines Teilbaums in der Administration nach einer Vorschau geändert, dasselbe auf der Kommandozeile mit --dry-run, die Anleitungen der Extension gefunden | 10 Minuten |
| Benachrichtigungen: ausführen und Probleme beheben | Den Benachrichtigungs-Cronjob eingerichtet, die Statusseite gelesen, einen Lauf ohne E-Mail-Versand ausprobiert, die üblichen Probleme gelöst | 30 Minuten |
| Benachrichtigungen: Architektur, Erweiterung und Tests | Einen eigenen Ereignistyp und Handler, die an eine Adresse mailen, einen Test, der E-Mails in Dateien hält | 45 Minuten |
| E-Mail-Einstellungen: einrichten und ausführen | Fußzeile und Links eingerichtet, die Statusseite gelesen, eine Bitte um Einstellung der E-Mails, einen Export und eine Löschung bearbeitet, die Schranke ohne Versand getestet | 30 Minuten |
| E-Mail-Einstellungen: Kategorien, die E-Mail-Schranke und Tests | Eine eigene Kategorie mit einem Handler für ältere Daten, E-Mails durch die Schranke, einen Test, der E-Mails in Dateien hält | 30 Minuten |
| Inhaltssprachen | Eine Sprache mit der durchsuchbaren Auswahl hinzugefügt, von einem Siteaccess über SiteLanguageList angezeigt, Inhalte in sie übersetzt, Inhalte aus einer falschen Sprache herausgeholt, eine Sprache entfernt, ohne etwas zu verlieren | 30 Minuten |
| Remote-Dienste und Apps | Dienste aus der Shell und aus Python aufgerufen, ein persönliches API-Token, ein Portal-Frontend | 20 Minuten |
| Persönliche API-Schlüssel | Einen Schlüssel auf der Site erstellt, mit nur den Scopes, die er braucht, REST damit aus curl und Python aufgerufen, einen Schlüssel rotiert und widerrufen; als Administrator: Schlüssel für eine Rolle erlaubt, jeden Schlüssel gesehen und widerrufen, das Audit gelesen | 20 Minuten |
| Ein Frontend auf der GraphQL-API, Schritt für Schritt | Die GraphQL-API mit einem Befehl eingeschaltet, ein Schlüssel für ein Frontend, ein Next.js-, Nuxt-, Astro-, HTML- oder Expo-Projekt aus dem Schema der Site erzeugt, seine Abfragen gespeichert und gecacht, die Mutationen eingeschaltet | 20 Minuten |
| GraphQL-Rezepte | Ein Blog- oder News-Frontend, eine mobile App, ein statischer Build und ein KI-Agent auf der GraphQL-API, mit an den Demo-Inhalten erprobten Abfragen | 15 Minuten |
| REST-API v1 und v2: eine Extension | Welche URL unter v1 und v2 aus der einen Extension ezprestapi antwortet, einen Client mit OAuth2 oder einem Schlüssel authentifiziert, die API mit curl aufgerufen, rest.ini gelesen, eine Installation weg vom veralteten ezprestapiprovider gebracht | 20 Minuten |
| Upgrade | Eine Installation von 4.x, 5.x oder einer früheren 6.0.x auf die aktuelle 6.0-Linie gebracht und geprüft | 20 Minuten für eine kleine Site |
| Upgrade mit der Konsole | Den Zustand jedes Upgrade-Schritts gelesen, einen Probelauf gemacht, das Upgrade mit Sicherung in einem Aufruf ausgeführt, nach einem Fehler fortgesetzt, Abweichungen gefunden, dasselbe aus einer Pipeline | 15 Minuten |
| Zu expcomponents beitragen | Eine Korrektur an einer Bibliothek des Kernels (dem Fork der Zeta Components) geklont, auf jeder unterstützten PHP-Version getestet, mit ihrem ChangeLog-Eintrag committet und als Pull-Request angeboten; wie Releases, Versionen und der Abgleich mit Upstream funktionieren | 30 Minuten, dann die Korrektur |
| Upgrade-Schritte für Erweiterungen | Eine Tabelle, eine Spalte und eine Standardzeile einer Erweiterung zu Upgrade-Schritten gemacht, registriert, frisch, alt, zweimal und halb ausgeführt getestet | 30 Minuten |
| Die Upgrade-Prüfung | Die Dateien und die Datenbank unter Setup > Upgrade-Prüfung mit der Release verglichen, jede Art von Befund gelesen und behandelt, den Bericht heruntergeladen, dieselbe Prüfung aus einer Shell ausgeführt | 15 Minuten |
| Migrationen | Was eine Migration ist und wann man sie nimmt, der Lebenszyklus vom Schreiben bis zum Push, wo Dateien liegen, Reihenfolge, Umgebungen, die Aufzeichnung, Transaktionen, die Sperre, jede Voreinstellung und jeder Schalter | 15 Minuten |
| Migrationen: eine erste PHP-Migration, Schritt für Schritt | Zwei PHP-Migrationen erzeugt, ausgefüllt, geprüft, simuliert, ausgeführt, aufgezeichnet, eine mit ihrem down() zurückgenommen, ein Fehler aus seinem Sicherungspunkt wiederhergestellt | 20 Minuten |
| PHP-Migrationen | Die Klasse, plan(), up(), down() und detect(), der Kontext, Referenzen, Transaktionen, Fehler, Wartungsmodus, Ereignisse, Erweiterungen, Tests | Referenz |
| Schritte von YAML-Migrationen | Die Schritttypen des Kernels: Inhalte in mehreren Sprachen, Orte, Versionen; Bezeichner, Workflows, welche Schritte sich selbst zurücknehmen, ein eigener Schritttyp | Referenz |
| Migrationen: SQL und Einstellungen | Tabellen, Spalten, Indizes und Zeilen auf jeder Engine, SQL-Dateien je Engine und für MongoDB, was nicht in einer Transaktion liegt, INI-Migrationen und Einstellungsschritte mit ihren Sicherungskopien | Referenz |
| Migrationen: Zurücknehmen und Sicherungspunkte | Die Sicherungspunkte eines Laufs, ihre Wiederverwendung, die automatische Wiederherstellung nach einem Fehler, ein Lauf, eine Migration oder ein beliebiger Sicherungspunkt von Hand zurückgenommen | 15 Minuten |
| Migrationen: das Migrations-Repository | Die Statusdatei und das Laufprotokoll, das Repository der Site oder ein separates, ein Lauf ein Commit und Tag, gescheiterte Pushes und der Cronjob-Teil migrationpush | 10 Minuten |
| Migrationen: Generatoren und das Aufzeichnen von Änderungen | Die eigenen Änderungen oder jede Änderung der Website als Schritte einer Migration aufgezeichnet, auf der Ebene der Operationen des Kernels und ohne personenbezogene Daten; die Befehle, Setup > Migrationen > Aufzeichnung, die Ereignisse und die Schritte, die daraus werden | 15 Minuten |
| Migrationen: Pakete, Deploys und lange Läufe | Die Migrationen, die ein Paket mitbringt, und wann sie laufen, der Lauf des Kickstarters, exp:velocity deploy --migrate, Läufe in Teilen und gedrosselt, PHP-Migrationen in Stapeln mit Checkpoint, Läufe in der Warteschlange von expqueue | 15 Minuten |
| Migrationen: Deploy auf entfernte Installationen | exp:migration:deploy auf eine oder viele Gegenstellen gleichzeitig und im Gleichstand: Gegenstellen und Zugangsdaten per Name, ssh, sftp, rsync, FTP, Preflight und Prüfung auf allen, Umschalten und Rollback nach dem Prinzip alles oder nichts, Status und Verlauf | 15 Minuten |
| Migrationen: Engines und Leistung | Auf welchen Engines jede Familie der Migrations-Engine getestet wird (SQLite, MySQL/MariaDB, PostgreSQL, MongoDB), wie man die Matrix ausführt und wie die CI es tut, Zeit und Speicher von 1.000 Migrationen, eines großen Datenschritts und eines langen Laufs mit Checkpoints | 10 Minuten |
| Migrationen: Fehlerbehebung | Jede Meldung der Migrationsbefehle, was sie bedeutet und was zu tun ist | Referenz |
| Migrationen im Hilfezentrum | Der Einstieg: 25 Rezepte (Tabellen, Klassen, Inhalte in großen Mengen, Rollen, Einstellungen, Tests, CI und Auslieferung), Seiten je Zielgruppe, die häufigen Fragen und die Fehlerbehebung nach Symptom | Referenz |
| Fehlende Dateien und Bild-Aliase | Im Speicher fehlende Dateien und veraltete Bild-Aliase unterhalb eines Knotens gefunden, mit dem Ziel „Fehlende Dateien“ der defekten Beziehungen, jede Zeile gelesen und nach einer Vorschau aufgelöst (neu erzeugt, wiederhergestellt, erneut hochgeladen, ihre Referenz entfernt oder zur Prüfung markiert), dasselbe aus einer Shell, zuerst mit einem Probelauf | 15 Minuten |
| Einen Fehler anhand seiner Referenz finden | Die Logzeilen einer fehlgeschlagenen Anfrage über die ERR-Referenz gefunden, die ihre Fehlerseite anzeigte, den Rest der Anfrage und das Audit jener Minute gelesen, dasselbe aus einer Shell, ohne personenbezogene Daten preiszugeben | 10 Minuten |
Weg 1: Redakteure
Sie schreiben und verwalten Inhalte in der Administrationsoberfläche.
- Erste Schritte: Abschnitte 4 bis 6 (die Site ansehen, erste Anmeldung, erste Inhalte).
- Das Inhaltsmodell und das Bearbeiten von Inhalten: Klassen, Objekte, der Online-Editor, die Tabelle der Unterelemente, das Bearbeiten mehrerer Knoten, der Papierkorb, Inhaltsjobs.
- Vertiefung, wenn Sie sie brauchen:
- Die Tabelle der Unterelemente: Optionen und Spalten und Blättern in Listen
- Mehrere Einträge auf einmal bearbeiten
- Online-Editor: TinyMCE 8
- Der Papierkorb: wer es gelöscht hat und wo es war
- Große Vorgänge als Inhaltsjobs
- Exponential Intelligence: der Schreibassistent, der Entwürfe im Tab Intelligence, im Bearbeitungsformular und in Vector schreibt
- Exponential Layouts: Seiten im Layout-Editor aus Layouts, Zonen und Blöcken zusammenstellen
- Objektzustände: eine Stufe wie „In Prüfung“ oder „Freigegeben“ für Inhalte setzen
- PDF-Export, Übersetzungen und Sprachen, Inhaltssprachen (die Anleitung)
- Ihre E-Mail-Einstellungen: welche E-Mails Sie erhalten, Abmelden mit einem Klick, Ihre Daten
- Shop-Dashboard und Bestellbelege, wenn Sie einen Shop betreiben
Weg 2: Site-Gestalter
Sie bestimmen, wie die Site aussieht und welche Extensions sie verwendet.
- Erste Schritte: Abschnitt 7 (erste Template-Änderung, per Klickpfad und per Datei).
- Das Inhaltsmodell und das Bearbeiten von Inhalten: das Modell, das Ihre Templates rendern.
- Templates und Design: das Template finden, überschreiben, prüfen, das Design der Administration wechseln.
Vertiefung:
- Template-Pfad-Kommentare: sehen, welche Datei welches Markup geschrieben hat
- Template-Editor und Reihenfolge der Overrides
- Die Exp-Debug-Leiste
- Exponential Admin UI: das Aussehen der Admin UI für die Administration, als eigener Siteaccess
adminui - Das Design der Administration wählen: admin4l, admin4, AdminUI oder das klassische Design je Benutzer und Sitzung, und die zugehörige Anleitung
- Exponential Layouts: Blöcke, Zonen und Regeln, im Browser gebaut
- Extensions: eine Extension finden, installieren, einschalten und konfigurieren. Vertiefung:
- Was eine neue Installation mitbringt, die Liste der Extensions, Ladereihenfolge
- Einstellungen über die Kommandozeile ändern, INI-Overrides für mehrere Sites
- Anfrageregeln, robots.txt
- Rollen und Richtlinien in Reihenfolge, ausgeblendete Tabs der Administration, Objektzustände (Stufen wie Entwurf, in Prüfung und freigegeben, die Rollen berücksichtigen)
- Eine Seite je Extension: Index der Extensions
Weg 3: Entwickler
Sie schreiben Extensions, Templates mit Logik, Befehle und Integrationen.
- Erste Schritte, dann das Einstellungswerkzeug: exp:ini.
- Extensions, Abschnitte 6 und 7: eine Extension von Hand oder mit den RAD-Assistenten bauen und veröffentlichen.
Ihre Dokumentation: Eine Extension dokumentieren (README.md und INSTALL.md oben, der Rest als Markdown in
doc/). Erweiterungspunkte (RAD): RAD-Werkzeuge, die Erweiterungspunkte, die Erweiterungsoberfläche, RAD-Sicherheit. - Befehle, Cronjobs und Modul-Views als Klassen: Befehle, Cronjob-Teile und Modul-Views und die Spezifikation; Konsole.
- Metadaten und Dienste: Remote-Dienste und Apps (die Anleitung), Persönliche API-Schlüssel (REST mit einem Schlüssel), Metadaten von Extensions, Backend-Dienste über ezjscore.
- Benachrichtigungen: Architektur, Erweiterung und Tests, die Spezifikation, die INI-Referenz, die Befehle. E-Mail-Einstellungen: Kategorien, die E-Mail-Schranke und Tests, die Spezifikation, die Befehle, die rechtliche Checkliste.
- Tests und Kompatibilität: Continuous Integration, Unterstützung für PHP 8.
Die Bibliotheken des Kernels (
ezc*-Klassen): Exponential Components und Zu expcomponents beitragen. Änderungen an Datenbank und Inhalten einer Site im Code: Migrationen, beginnend mit dem Tutorial, dann PHP-Migrationen und das Dateiformat. - Brücken zur Symfony-Plattform: Legacy Bridge, die Repositorys der Plattform.
Weg 4: Betreiber
Sie betreiben die Installation: Server, Caches, Sicherungen, Upgrades, Sicherheit.
- Erste Schritte, dann Bereitstellung und Betrieb einer Site.
- Gezielt installieren: Installation mit einem Befehl, Kickstarter für wiederholbare Installationen, .htaccess und config.php von der Konsole, SQLite, MongoDB.
- Der Webserver: Velocity-Webserver, sein Control Panel, HTTPS-Zertifikate, Engines im Vergleich, FrankenPHP.
- Caches und Geschwindigkeit: Cache-Steuerung, HTTP-Caching, SQL-Abfrage-Cache, statischer Cache, Preload, Benchmark, die Anleitung Benchmarks und, unter LiteSpeed oder OpenLiteSpeed, Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
- Gesund halten: Benachrichtigungen (der Cronjob, die Statusseite, Fehlerbehebung), E-Mail-Einstellungen (die Fußzeile, Einwilligung, Sperrliste, Aufbewahrung), Wartungsmodus, Reparatur aus dem Browser, Prüfung der Dateikonsistenz, fehlende Dateien und Bild-Aliase, Cronjobs, der Log-Viewer und einen Fehler anhand seiner Referenz finden, Workflows und ihre wartenden Prozesse, Audit-Protokoll.
- Sicherheit: Sicherheit und Audit (die Anleitung), Benutzerverwaltung von der Konsole, Zweistufige Anmeldung, Passkeys, Identität bestätigen, Sicherheitsvorgaben vom September 2026, die Patches vom August 2026, die Härtung in 6.0.13.
- Upgrade: Folgen Sie Upgrade; lesen Sie das Changelog zu 6.0.15, dann die Verhaltensänderungen von Juli und August, 16. bis 30. September und Oktober, in dieser Reihenfolge. Die eigenen Änderungen einer Site kommen als Migrationen: Migrationen, Zurücknehmen und Sicherungspunkte, das Migrations-Repository.
Verwandte Seiten
- Ein Wort, das Sie nicht kennen: Glossar.
- Was sich geändert hat und warum: Geschichte; der Nachweis, dass nichts fehlt: Abdeckung.
- Release Notes: Changelogs von 6.0 und der Extensions.
- Der Installationstext an einem Ort: INSTALL.
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.