Especificar dependências em PHP

O PHP usa o Composer para gerenciar as dependências. Se você estiver usando o Cloud Shell, o Composer será pré-instalado. Caso contrário, siga as Instruções de instalação do Composer.

Como criar um arquivo composer.json

O arquivo composer.json lista as dependências da função. É possível criá-la manualmente ou executar o seguinte comando:

composer init

Ao executar esse comando, ele solicita que você preencha os campos e oferece alguns padrões inteligentes.

Como declarar dependências

Para declarar dependências, adicione um arquivo composer.json contendo dependências ao diretório de código da função. Neste exemplo, solicitamos o Functions Framework (em inglês) e adicionamos um script start:

{
    "require": {
        "php": ">= 8.1",
        "google/cloud-functions-framework": "^1.1"
    },
    "scripts": {
        "start": [
           "Composer\\Config::disableProcessTimeout",
           "FUNCTION_TARGET=helloHttp php -S localhost:${PORT:-8080} vendor/google/cloud-functions-framework/router.php"
        ]
    }
}

Os scripts definidos no arquivo composer.json não serão executados quando o Composer puder usar um resultado armazenado em cache.

Adicionar o Functions Framework como uma dependência

O ambiente de execução PHP do Cloud Run functions exige 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. Ele também precisa conter o arquivo composer.json:

composer require google/cloud-functions-framework

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

Arquivo autoload.php

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

Adicione a seguinte linha na parte superior dos scripts PHP para solicitar o arquivo autoload.php, que automaticamente require(solicita) as outras dependências da função:

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

Por padrão, o diretório vendor/ é ignorado no arquivo gerado .gcloudignore para reduzir o número de arquivos enviados na implantação.

Como atualizar dependências

Para atualizar as dependências da função e o arquivo composer.lock, use o comando update:

composer update

Isso resolve todas as dependências do projeto e grava as versões exatas em composer.lock.