Unterschiede zwischen PHP 5.5 und PHP 7/8

Auf dieser Seite wird beschrieben, wie Sie Ihre PHP 5.5-Anwendung in die PHP 7/8-Laufzeit in der App Engine-Standardumgebung migrieren.

Kompatibilitätsprobleme zwischen PHP 5.5 und PHP 7/8

Die offizielle PHP-Dokumentation enthält Informationen zur Migration von verschiedenen PHP-Versionen:

Datei app.yaml migrieren

Damit sämtliches Routing in einer einzigen Anwendung verarbeitet wird, muss ein Front Controller eingerichtet werden. Weitere Informationen finden Sie unter Anwendungsstart.

In der PHP 7/8-Laufzeit kann das Handler-Element script nicht angepasst werden. Der einzige gültige Wert ist auto, da der gesamte Traffic über den Befehl "entrypoint" bereitgestellt wird. Alle nicht statischen URL-Handler müssen script: auto enthalten, damit sie bereitgestellt werden können.

Das Verhalten einiger Elemente in der Konfigurationsdatei app.yaml wurde geändert:

ElementÄnderungstypBeschreibung
entrypointHinzugefügtDieses Feld kann optional verwendet werden, um den Befehl anzugeben, der beim Start der Anwendung ausgeführt wird.
threadsafeVerworfenEs wird davon ausgegangen, dass alle Anwendungen threadsicher sind, d. h., eine Instanz kann mehrere Anfragen gleichzeitig verarbeiten.
api_versionVerworfenWird in der PHP-Laufzeit 7/8 nicht mehr benötigt.
application_readableVerworfen
builtinsVerworfen
librariesVeraltetMithilfe einer Metadatendatei wie composer.json können beliebige Abhängigkeiten von Drittanbietern installiert werden.
handlersGeändert
  • Das Feld script ist optional und kann nur den Wert auto enthalten. Verwenden Sie ein Web-Framework wie Laravel, Symfony, Slim oder eine ähnliche Option mit In-App-Routing, um ein Skript auszuführen, wenn eine Anfrage auf eine bestimmte Route trifft.
  • Das Feld "login" wird nicht unterstützt Verwenden Sie das Identity and Access Management (IAM) für die Nutzerverwaltung.

Wenn Sie eines der verworfenen Felder verwenden, tritt bei der Bereitstellung der Anwendung ein Fehler auf.

Weitere Informationen finden Sie in der Referenz zu app.yaml.

Weniger Laufzeitbeschränkungen

Die PHP 7/8-Laufzeiten haben weniger Einschränkungen als die PHP 5.5-Laufzeit.

Weitere Informationen finden Sie in der Dokumentation zur PHP 7/8-Laufzeitumgebung.

Aus dem App Engine PHP SDK migrieren

Um den Aufwand für die Laufzeitmigration und die Komplexität zu verringern, können Sie in der App Engine-Standardumgebung auf viele Legacy-Bundle-Dienste und APIs in der PHP 7/8-Laufzeit zugreifen, z. B. Memcache. Ihre PHP 7/8-Anwendung kann über das App Engine SDK für PHP 7+ die APIs für gebündelte Dienste aufrufen und auf die meisten Funktionen der PHP 5-Laufzeit zugreifen. Nicht alle Legacy-Dienste, die für PHP 5 verfügbar sind, haben einen entsprechenden Dienst in PHP 7/8. Eine vollständige Liste der für PHP 7/8 verfügbaren Legacy-Dienste für gebündelte Dienste finden Sie in der Referenzdokumentation für gebündelte Legacy-Dienste.

Sie können auch Google Cloud-Produkte verwenden, die vergleichbare Funktionen wie die gebündelten Legacy-Dienste bereitstellen. Diese Google Cloud-Produkte bieten eine idiomatische Google Cloud CLI-Clientbibliothek. Für die älteren gebündelten Dienste, die in Google Cloud nicht als separate Produkte verfügbar sind, z. B. die Suche, können Sie Drittanbieter oder andere Behelfslösungen verwenden. Weitere Informationen zur Migration zu nicht gebündelten Diensten finden Sie unter Von gebündelten Diensten migrieren.

Anwendung lokal ausführen

So testen Sie Ihre Anwendung und führen sie lokal aus:

  1. Installieren Sie lokal eine PHP-Version, die einer der PHP 7/8-Laufzeiten entspricht, die in der App Engine-Standardumgebung verfügbar sind.
  2. Webserver installieren und damit Ihre Anwendung lokal bereitstellen

Den HTTP-Server können Sie z. B. durch Ausführen des folgenden Befehls starten:

php -S localhost:8080

Anschließend können Sie sich die Anwendung im Webbrowser unter http://localhost:8080 ansehen.