Especificar dependências em PHP

Use o Composer (em inglês) para gerenciar dependências em PHP.

Como instalar o Composer

Se você ainda não tiver o Composer instalado, faça o seguinte:

  1. Faça o download do Composer em qualquer local que você escolher.

  2. Depois de fazer o download, mova o arquivo composer.phar para um diretório que esteja no caminho do sistema. Por exemplo:

    mv composer.phar /usr/local/bin/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": ">= 7.4",
        "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 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.