O tempo de execução do PHP

A sua função do Cloud Run é executada num ambiente que consiste numa versão do sistema operativo com pacotes suplementares, suporte de idiomas e na biblioteca PHP Functions Framework que suporta e invoca a sua função. Este ambiente é identificado pela versão do idioma e é conhecido como o ID de tempo de execução.

Preparação da função

Pode preparar uma função diretamente a partir da Google Cloud consola ou escrevê-la no seu computador local e carregá-la. Para preparar o seu computador local para o desenvolvimento em PHP, consulte o artigo Use PHP on Google Cloud.

Imagens base e tempos de execução de PHP suportados

Tempo de execução ID do ambiente de execução Camadas Imagem base do tempo de execução
PHP 8.4 php84 google-22-full (predefinição) google-22-full/php84
PHP 8.3 php83 google-22-full (predefinição) google-22-full/php83
PHP 8.2 php82 google-22-full (predefinição) google-22-full/php82
PHP 8.1 php81 google-18-full google-18-full/php81
PHP 7.4 php74 google-18-full google-18-full/php74

Selecione o tempo de execução

Pode selecionar um dos tempos de execução do PHP suportados para a sua função durante a implementação.

Pode selecionar uma versão de tempo de execução através da Google Cloud consola ou da CLI gcloud. Clique no separador para ver instruções sobre como usar a ferramenta da sua escolha:

gcloud

Especifique a imagem base do PHP para a sua função com a flag --base-image ao implementar a função. Por exemplo:

gcloud run deploy FUNCTION \
    --source . \
    --function FUNCTION_ENTRYPOINT \
    --base-image php84

Substituir:

  • FUNCTION com o nome da função que está a implementar. Pode omitir este parâmetro por completo, mas é-lhe pedido o nome se o omitir.

  • FUNCTION_ENTRYPOINT com o ponto de entrada da sua função no código-fonte. Este é o código que o Cloud Run executa quando a sua função é executada. O valor desta flag tem de ser um nome de função ou um nome de classe totalmente qualificado que exista no seu código-fonte.

Para obter instruções detalhadas sobre a implementação de uma função através da CLI gcloud, consulte o artigo Implemente funções no Cloud Run.

Consola

Pode selecionar uma versão de tempo de execução quando cria ou atualiza uma função do Cloud Run na Google Cloud consola. Para ver instruções detalhadas sobre como implementar uma função, consulte o artigo Implemente funções no Cloud Run.

Para selecionar um tempo de execução na Google Cloud consola quando cria uma função, siga estes passos:

  1. Na Google Cloud consola, aceda à página do Cloud Run:

    Aceda ao Cloud Run

  2. Clique em Escrever uma função.

  3. Na lista Tempo de execução, selecione uma versão do tempo de execução do PHP.

  4. Clique em Criar e aguarde que o Cloud Run crie o serviço com uma revisão de marcador de posição.

  5. A consola redireciona para o separador Origem, onde pode ver o código-fonte da sua função. Clique em Guardar e voltar a implementar.

Para obter instruções detalhadas sobre como atualizar a versão do tempo de execução após a implementação da função, consulte o artigo Volte a implementar um novo código-fonte.

Estrutura do código-fonte

Para que as funções do Cloud Run encontrem a definição da sua função, o código fonte tem de seguir uma estrutura específica. Consulte o artigo Escreva funções do Cloud Run para mais informações.

Configuração do PHP

Configura a sua função PHP com um ficheiro php.ini no diretório raiz da função. Pode ver as definições de configuração do PHP existentes com a função phpinfo(), conforme mostrado no seguinte exemplo de código:


use Psr\Http\Message\ServerRequestInterface;

function phpInfoDemo(ServerRequestInterface $request): string
{
    // phpinfo() displays its output directly in the function's
    // HTTP response, so we don't need to explicitly return it
    //
    // Note: we recommend deleting the deployed Cloud Function once you no
    // longer need it, as phpinfo() may broadcast potential security issues.
    phpinfo();
    return '';
}

Especificar dependências

O PHP usa o Composer para gerir dependências. Especifica as dependências da sua função adicionando-as a um ficheiro de projeto denominado composer.json.

O tempo de execução do PHP das funções do Cloud Run requer que o Functions Framework seja uma dependência explícita. Para adicionar o Functions Framework como uma dependência, execute o seguinte comando no diretório que contém o código da função (este diretório também tem de conter o ficheiro composer.json):

composer require google/cloud-functions-framework

Isto adiciona o Functions Framework ao seu composer.json e instala o pacote no diretório vendor/.

Ficheiro autoload.php

Um dos ficheiros contidos no seu diretório vendor/ é autoload.php.

Adicione a seguinte linha à parte superior dos seus scripts PHP para exigir o ficheiro autoload.php, que require automaticamente as outras dependências da sua função:

require_once __DIR__ . '/vendor/autoload.php';

Por predefinição, o diretório vendor/ é ignorado no ficheiro .gcloudignore gerado para reduzir o número de ficheiros enviados na implementação.