PHP 7.4 ya tiene disponibilidad general.

Migra tu app de PHP 5.5 a PHP 7

Aprende a migrar tu aplicación de PHP 5.5 al entorno de ejecución de PHP 7 en el entorno estándar de App Engine.

Problemas de compatibilidad entre PHP 5.5 y PHP 7

La documentación oficial de PHP proporciona información sobre cómo migrar desde diferentes versiones de PHP:

Migra el archivo app.yaml

Debes colocar un controlador frontal para que gestione todos los enrutamientos de tu aplicación. Para obtener más información, consulta Inicio de la aplicación.

El entorno de ejecución de PHP 7 no permite que se personalice el elemento controlador script. El único valor que se admite es auto, ya que todo el tráfico se entrega mediante el comando entrypoint. Todos los controladores de URL no estática deben incluir script: auto para que la implementación se realice de manera correcta.

Se modificó el comportamiento de algunos elementos del archivo de configuración app.yaml:

ElementoTipo de cambioDescripción
entrypointAgregado De manera opcional, usa este campo para especificar el comando que se ejecutará cuando se inicie la app.
threadsafeObsoletoSe supone que todas las aplicaciones son seguras para los subprocesos, por lo que una instancia puede manejar varias solicitudes al mismo tiempo.
api_versionObsoletoAntes era obligatorio, pero en el entorno de ejecución de PHP 7 no es necesario.
application_readableObsoleto
builtinsObsoleta
librariesObsoletoSe pueden instalar dependencias arbitrarias de terceros mediante un archivo de metadatos composer.json.
handlersModificado
  • El campo script es opcional, y el único valor aceptado es auto. Usa un framework web (como Laravel, Symfony, Slim o una opción similar) con enrutamiento incorporado en la app para ejecutar una secuencia de comandos cuando una solicitud alcanza una ruta específica.
  • No se admite el campo login. Usa la Administración de identidades y accesos (IAM) para la administración de usuarios.

Si usas alguno de los campos obsoletos, la implementación de la app fallará.

Para obtener más información, consulta la referencia app.yaml.

Restricciones de entorno de ejecución reducidas

El entorno de ejecución de PHP 7 tiene menos restricciones en comparación con el de PHP 5.5.

Para obtener más información, consulta la documentación del entorno de ejecución de PHP 7.

Migra desde el SDK de PHP de App Engine

El entorno de ejecución de PHP 7 no es compatible con las API específicas de App Engine. La Biblioteca cliente del SDK de Cloud ahora proporciona la mayoría de las funciones de estas API:

  • La API de Blobstore de App Engine no es compatible. Usa Cloud Storage a través de la biblioteca cliente google/cloud-storage. Para comenzar, consulta la página Bibliotecas cliente de Cloud Storage.
  • Se puede acceder a Datastore a través de la biblioteca cliente google/cloud-datastore. Para comenzar, consulta la página Bibliotecas cliente de Datastore.
  • La API de Imágenes de App Engine no es compatible. Para manipular y procesar imágenes, se recomienda usar imgix. Si necesitas un nivel gratuito, usa Rethumb.

    Para almacenar y entregar imágenes, usa Cloud Storage a través de la biblioteca cliente google/cloud-storage. Para comenzar, consulta la página Bibliotecas cliente de Cloud Storage.

  • La API de correo electrónico de App Engine no es compatible. Para enviar un correo electrónico, usa un proveedor de correo electrónico tercero, como SendGrid, Mailgun o Mailjet. Todos estos servicios ofrecen API para enviar correos electrónicos desde aplicaciones.

  • Memcache de App Engine no es compatible. En su lugar, usa Memorystore para Redis.

  • Se puede acceder a la API de módulos de App Engine mediante la biblioteca google/apiclient, pero ya no se incluye en un SDK oficial. Usa las variables de entorno y la API de Administrador de App Engine para obtener información y modificar los servicios en ejecución de tu aplicación:

    Información del servicio Cómo acceder
    Nombre del servicio actual Con la variable de entorno GAE_SERVICE.
    Versión del servicio actual Con la variable de entorno GAE_VERSION.
    ID de instancia actual Con la variable de entorno GAE_INSTANCE.
    Nombre de host predeterminado Método apps.get de la API de Administrador
    Lista de servicios Método apps.services.list de la API de Administrador
    Lista de versiones para un servicio Método apps.services.versions.list de la API de Administrador
    Versión predeterminada para un servicio, incluidas las divisiones del tráfico Método apps.services.get de la API de Administrador
    Lista de instancias en ejecución para una versión Método apps.services.versions.instances.list de la API de Administrador
  • La API de App Engine Search no es compatible. Puedes alojar cualquier base de datos de búsqueda de texto completo, como ElasticSearch en Compute Engine y acceder a ellas desde tu servicio.

  • Cloud Tasks reemplazará a la API de la lista de tareas en cola de App Engine. Puedes poner en cola las tareas de tu app mediante la API de REST de Cloud Tasks, la API de RPC o la biblioteca cliente de PHP, y tu objetivo Push puede ser una app en el entorno de ejecución de PHP 7. Solo se admiten las listas de aplicaciones en cola.

  • La API de usuarios no es compatible.

Ejecuta la aplicación de manera local

El entorno de ejecución de PHP 7 no admite dev_appserver.py. Si deseas probar tu aplicación y ejecutarla de forma local, instala una versión de PHP que el entorno de ejecución de PHP 7 admita y configura un servidor web.

Por ejemplo, ejecuta el siguiente comando para iniciar el servidor HTTP:

php -S localhost:8080

Luego, visita http://localhost:8080 para ver la aplicación en el navegador web.