Especifique dependências em PHP

Usa o Composer para gerir dependências em PHP.

Instalar o Composer

Se ainda não tiver o Composer instalado, pode fazê-lo da seguinte forma:

  1. Transfira o Composer para qualquer localização que pretenda.

  2. Depois de transferido, mova o ficheiro composer.phar para um diretório que esteja no caminho do sistema, por exemplo:

    mv composer.phar /usr/local/bin/composer
    

Criar um ficheiro composer.json

O ficheiro composer.json lista as dependências da sua função. Pode criá-lo manualmente ou executar o seguinte comando:

composer init

Quando executa este comando, é-lhe pedido interativamente que preencha os campos, ao mesmo tempo que são oferecidas algumas predefinições inteligentes.

Declarar dependências

Para declarar dependências, adicione um ficheiro composer.json com dependências ao diretório do código da função. Neste exemplo, precisamos do Functions Framework 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"
        ]
    }
}

Tenha em atenção que os scripts definidos no seu ficheiro composer.jsonnão são executados quando o Composer pode usar um resultado em cache.

Adicione o Functions Framework como uma dependência

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.

A atualizar dependências

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

composer update

Esta ação resolve todas as dependências do projeto e escreve as respetivas versões exatas em composer.lock.