O PHP 7.4 já está disponível para o público em geral.

Como migrar um aplicativo do PHP 5.5 para o PHP 7

Saiba como migrar seu aplicativo PHP 5.5 para o ambiente de execução do PHP 7 no ambiente padrão do App Engine.

Problemas de compatibilidade entre o PHP 5.5 e o PHP 7

A documentação oficial do PHP fornece informações sobre a migração de diferentes versões do PHP:

Como migrar seu arquivo app.yaml

Coloque um controlador frontal para processar todo o roteamento em seu aplicativo. Para mais informações, consulte Inicialização do aplicativo.

O ambiente de execução do PHP 7 não permite que o elemento do gerenciador script seja personalizado. O único valor válido é auto, porque todo o tráfego é exibido pelo comando entrypoint. Todos os gerenciadores de URL não estáticos precisam incluir script: auto para serem implantados.

O comportamento de alguns elementos no arquivo de configuração app.yaml foi modificado:

ElementoTipo de alteraçãoDescrição
entrypointIncluídoOpcionalmente, use esse campo para especificar o comando que será executado quando o aplicativo for iniciado.
threadsafeObsoletoTodos os aplicativos são presumidos como thread-safe, o que significa que uma instância pode manipular várias solicitações ao mesmo tempo.
api_versionObsoletoNão mais necessário no ambiente de execução do PHP 7.
application_readableObsoleto
builtinsObsoleto
librariesObsoletoDependências arbitrárias de terceiros podem ser instaladas usando um arquivo de metadados composer.json.
handlersModificado

Se você usar qualquer um dos campos obsoletos, haverá um erro na implantação do aplicativo.

Para mais informações, consulte a referência app.yaml.

Restrições de ambiente de execução reduzidas

O ambiente de execução do PHP 7 tem menos restrições em comparação com o ambiente de execução do PHP 5.5.

Para mais informações, consulte a documentação do ambiente de execução do PHP 7.

Como migrar do SDK PHP do App Engine

O ambiente de execução do PHP 7 não é compatível com as APIs específicas do App Engine. A maior parte da funcionalidade fornecida por essas APIs agora é fornecida pela biblioteca de cliente do SDK do Cloud:

  • Não há suporte para a API App Engine Blobstore. Use o Cloud Storage por meio da biblioteca de cliente google/cloud-storage. Para começar, consulte a página Bibliotecas de cliente do Cloud Storage.
  • O Datastore é acessível por meio da biblioteca de cliente google/cloud-datastore. Para começar, consulte a página Bibliotecas de cliente do Datastore.
  • Não há suporte para a API App Engine Images. Para manipular e processar imagens, recomendamos o imgix. Se você precisar de uma solução gratuita, use Rethumb.

    Para armazenar e exibir suas imagens, use o Cloud Storage por meio da biblioteca de cliente google/cloud-storage. Para começar, consulte a página Bibliotecas de cliente do Cloud Storage.

  • Não há suporte para a API App Engine Mail. Para enviar e-mails, use um provedor de e-mail terceirizado, como SendGrid, Mailgun ou Mailjet (todos em inglês). Todos esses serviços oferecem APIs para enviar e-mails a partir de aplicativos.

  • O suporte ao Memcache do App Engine não é fornecido. Em vez disso, use o Memorystore para Redis.

  • A API App Engine Modules pode ser acessada usando a biblioteca google/apiclient, mas não está mais incluída em um SDK oficial. Use as variáveis de ambiente e a API App Engine Admin para receber informações e modificar os serviços em execução do aplicativo:

    Informações de serviços Como acessar
    Nome do serviço atual Por meio da variável de ambiente GAE_SERVICE.
    Versão do serviço atual Por meio da variável de ambiente GAE_VERSION.
    ID da instância atual Por meio da variável de ambiente GAE_INSTANCE.
    Nome do host padrão Método apps.get da API Admin
    Lista de serviços Método apps.services.list da API Admin
    Lista de versões de um serviço Método apps.services.versions.list da API Admin
    Versão padrão de um serviço, incluindo qualquer divisão de tráfego Método apps.services.get da API Admin
    Lista de instâncias em execução de uma versão Método apps.services.versions.instances.list da API Admin
  • Não há suporte para a API App Engine Search. É possível hospedar qualquer banco de dados de pesquisa de texto completo, como o ElasticSearch no Compute Engine, e acessá-lo do serviço.

  • A API App Engine Task Queue será substituída por Cloud Tasks. É possível enfileirar tarefas do aplicativo usando a API REST do Cloud Tasks, a API RPC ou a biblioteca de cliente PHP, e seu destino push pode ser um aplicativo no ambiente de execução do PHP 7. Apenas filas push são compatíveis.

  • Não há suporte para a API Users.

Executar o aplicativo localmente

dev_appserver.py não é compatível com o ambiente de execução do PHP 7. Para testar o aplicativo e executá-lo localmente, instale uma versão do PHP compatível com o ambiente de execução do PHP 7 e configure um servidor da Web.

Por exemplo, inicie o servidor HTTP executando o seguinte comando:

php -S localhost:8080

Em seguida, visualize o aplicativo no navegador da Web em http://localhost:8080.