Upgrades ohne defekte Integrationen
Diese Seite richtet sich an Integratoren und Betreiber, die eine Installation aktualisieren müssen, von der andere Systeme abhängen. Exponential wird aktiv gepflegt; jedes Release bringt Korrekturen, Sicherheitshärtung und neue Funktionen, und einige davon ändern Verhalten, auf das sich eine Integration verlässt. Upgrades sind sicher, wenn Sie wissen, wo Sie nachsehen müssen, und einmal proben. Das Upgrade selbst beschreibt Upgrade.
Inhalt
- Was sich unter einer Integration typischerweise ändert
- Vor dem Upgrade lesen
- Versionen und Composer
- Das Upgrade, mit Integrationen
- Integrationen schreiben, die gut altern
Was sich unter einer Integration typischerweise ändert
| Bereich | Beispiel aus der Linie 6.0 | Wirkung auf eine Integration |
|---|---|---|
| Eingabeprüfung | Datentypen lehnen Werte ab, die sie früher gespeichert haben (ezprice lehnt einen nicht numerischen Preis ab, ezurl lehnt unsichere Schemata ab, ezboolean bildet Text auf 0 oder 1 ab) | Ein Import, der schludrige Werte gesendet hat, scheitert jetzt bei diesen Datensätzen; gut so, aber planen Sie es ein |
| Rechte | Der REST-Inhalts-Controller prüft seit 6.0.15 auf jeder Route Inhaltsrichtlinien | Ein Schlüssel oder Token, dessen Benutzer eine Richtlinie fehlt, erhält 403, wo es früher gelang |
| Erweiterungen | ezprestapiprovider ist veraltet; ezprestapi bedient v1 und v2 | Overrides, die die alte Provider-Klasse nennen, funktionieren über eine Brücke; wechseln Sie zu ezp7xRestApiProvider |
| Operationen und Trigger | Operationen jenseits der ausgelieferten Liste in AvailableOperationList[] können sich ohne Kompatibilitätsregeln ändern | Workflow-Ereignisse an zusätzlichen Operationen brauchen nach jedem Upgrade einen Test |
| Laufzeitumgebung | Worker von Velocity, Abkündigungen in PHP 8.x | Statische Variablen und dynamische Eigenschaften in altem Code; Neustart nach Klassenänderungen |
| Schema | Neue Tabellen und Spalten (zum Beispiel expapikey) | Führen Sie das Datenbank-Update Ihrer Engine aus, bevor Sie die Funktion verwenden |
Vor dem Upgrade lesen
- Die Hinweise zu Verhaltensänderungen in
doc/eng-us/bc/6.0/(zum Beispiel Verhaltensänderungen 2026-10 und Verhaltensänderungen der Erweiterungen): Jeder sagt, was sich geändert hat, wer betroffen ist, wie man es prüft und wie man es behebt. - Die Release-Hinweise jeder Erweiterung, die Ihre Integration verwendet (
doc/changelogs/extensions/). - Die Checkliste der Upgrade-Anleitung für jeden Zeitraum, den Sie durchlaufen (Upgrade, Teil C).
Durchsuchen Sie sie nach den Namen, die Ihre Integration verwendet: die Klassen, die sie aufruft, die Einstellungen, die sie setzt, die Routen, die sie aufruft.
Versionen und Composer
- Die
composer.jsonim Wurzelverzeichnis verwendet Tilde-Bedingungen (~1.2.6): Die letzte Stelle bleibt frei,composer updatebringt also Korrekturen derselben Linie, aber keine neue Nebenlinie. - Ihre Integrationserweiterung deklariert in ihrer eigenen
composer.json, was sie braucht ("se7enxweb/ezprestapi": "~1.2.6"), damit eine Installation nicht in eine Linie aktualisieren kann, die Sie nicht getestet haben (composer.json für Erweiterungen). - Halten Sie die Versionen in den Übergabedokumenten fest;
composer showund Setup > Extensions listen sie auf.
Das Upgrade, mit Integrationen
- Proben Sie auf einer Kopie der Produktion mit denselben Versionen der Integration; führen Sie die Abnahmefälle und die Probeläufe der Importe aus (Integrationen testen).
- Informieren Sie die Verantwortlichen der anderen Systeme über das Fenster; Aufrufe währenddessen können scheitern.
- Pausieren Sie die Cronjob-Teile der Integration unter Setup > Cronjobs (und die Queue-Worker), damit kein Import halb auf dem alten und halb auf dem neuen Code läuft (Cronjobs für Integrationen).
- Schalten Sie wahlweise den Wartungsmodus ein (
php bin/php/maintenance.php on --message="..." --until=1h); API-Clients erhalten503mitRetry-Afterund sollten zurückweichen. - Aktualisieren Sie: Code, Datenbank-Update, Autoloads, Caches,
php bin/php/console exp:velocity deploy. - Prüfen Sie: die Abnahmefälle, einen Probelauf je Import, einen Aufruf je API-Client,
exp:audit sinks list. - Setzen Sie die Cronjob-Teile fort und beobachten Sie die ersten Läufe.
- Halten Sie im Änderungsprotokoll der Integration fest, was sich für sie geändert hat.
Integrationen schreiben, die gut altern
- Verwenden Sie die unterstützten APIs (
eZContentFunctions, Operationen,expservices, die REST-Routen) statt Tabellen und interner Methoden. - Halten Sie den Code in einer Erweiterung mit Tests, nicht in verstreuten Skripten.
- Sichern Sie optionale Kernel-Klassen mit
class_exists()ab (die Audit-API dokumentiert das), damit ein fehlendes Teil die Funktion einschränkt, statt sie scheitern zu lassen. - Ziehen Sie für alles, was eine Website ändern können muss, Einstellungen dem Code vor.
- Folgen Sie dem Projekt: Geben Sie Korrekturen, die Sie brauchen, an das Projekt zurück, damit das nächste Release sie enthält (Integrationen zurückgeben).
Verwandte Seiten
- Upgrade
- Teil 4 des Erweiterungsbuchs: Upgrade
- Kunden-Websites aktuell halten
- Release- und Upgrade-Planung
- 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.