Differenze tra PHP 5.5 e PHP 7/8

In questa pagina viene spiegato come eseguire la migrazione dell'app PHP 5.5 al runtime PHP 7/8 nell'ambiente standard di App Engine.

Problemi di compatibilità tra PHP 5.5 e PHP 7/8

La documentazione ufficiale di PHP fornisce informazioni sulla migrazione da diverse versioni PHP:

Migrazione del file app.yaml in corso...

Devi posizionare un controller frontale per gestire tutto il routing nell'applicazione. Per ulteriori informazioni, vedi Avvio dell'applicazione.

I runtime di PHP 7/8 non consentono la personalizzazione dell'elemento gestore script. L'unico valore valido è auto, perché tutto il traffico viene gestito tramite il comando del punto di ingresso. Tutti i gestori di URL non statici devono includere script: auto per eseguire correttamente il deployment.

Il comportamento di alcuni elementi del file di configurazione app.yaml è stato modificato:

ElementoTipo di modificaDescrizione
entrypointAggiunto Facoltativamente, utilizza questo campo per specificare il comando che verrà eseguito all'avvio dell'app.
threadsafeDeprecatoSi presume che tutte le applicazioni siano threadsafe, il che significa che un'istanza può gestire più richieste contemporaneamente.
api_versionDeprecatoPrecedentemente richiesto ma non necessario nei runtime di PHP 7/8.
application_readableDeprecato
builtinsDeprecato
librariesDeprecatoÈ possibile installare dipendenze di terze parti arbitrarie utilizzando un file di metadati composer.json.
handlersModificato
  • Il campo script è facoltativo e l'unico valore accettato è auto. Utilizza un framework web (come Laravel, Symfony, Slim o un'opzione simile) con routing in-app per eseguire uno script quando una richiesta raggiunge una route specifica.
  • Il campo login non è supportato. Utilizza Identity and Access Management (IAM) per la gestione degli utenti.

Se utilizzi uno dei campi deprecati, si verificherà un errore durante il deployment dell'app.

Per saperne di più, consulta il riferimento di app.yaml.

Limitazioni di runtime ridotte

I runtime di PHP 7/8 hanno meno restrizioni rispetto al runtime di PHP 5.5.

Per ulteriori informazioni, consulta la documentazione relativa all'ambiente di runtime PHP 7/8.

Migrazione dall'SDK PHP di App Engine

Per ridurre la complessità e lo sforzo di migrazione del runtime, l'ambiente standard di App Engine consente di accedere a molti dei servizi e delle API legacy in bundle nel runtime di PHP 7/8, ad esempio Memcache. L'applicazione PHP 7/8 può chiamare le API dei servizi in bundle tramite l'SDK App Engine per PHP 7/8 e accedere alla maggior parte delle stesse funzionalità disponibili sul runtime PHP 5. Non tutti i servizi in bundle legacy disponibili per PHP 5 hanno un servizio corrispondente in PHP 7/8. Per l'elenco completo delle API dei servizi in bundle legacy disponibili per PHP 7/8, consulta la documentazione sui riferimenti delle API dei servizi in bundle legacy.

Hai anche la possibilità di utilizzare prodotti Google Cloud che offrono funzionalità simili a quelle dei servizi in bundle legacy. Questi prodotti Google Cloud forniscono una libreria client di Google Cloud CLI idiomatica. Per i servizi in bundle legacy che non sono disponibili come prodotti separati in Google Cloud, ad esempio la ricerca, puoi utilizzare fornitori di terze parti o altre soluzioni alternative. Per saperne di più sulla migrazione a servizi non in bundle, consulta Migrazione dai servizi in bundle.

Esecuzione dell'applicazione in locale

Per testare l'applicazione ed eseguirla localmente:

  1. Installa localmente una versione di PHP corrispondente a uno dei runtime di PHP 7/8 disponibili nell'ambiente standard di App Engine.
  2. Installa un server web e utilizzalo per gestire la tua app localmente.

Ad esempio, avvia il server HTTP eseguendo questo comando:

php -S localhost:8080

Quindi, visualizza l'applicazione nel browser web all'indirizzo http://localhost:8080.