Specifica le dipendenze in PHP

PHP usa Composer per gestire le dipendenze. Se utilizzi Cloud Shell, composer è preinstallato. Altrimenti, segui Istruzioni per l'installazione di Composer.

Creazione di un file composer.json

Il file composer.json elenca le dipendenze della funzione. Puoi crearlo manualmente o eseguire il seguente comando:

composer init

Quando esegui questo comando, ti viene chiesto in modo interattivo di compilare i campi, offrendo al contempo alcune impostazioni predefinite intelligenti.

Dichiarazione delle dipendenze

Per dichiarare le dipendenze, aggiungi un file composer.json contenente le dipendenze alla directory del codice della funzione. In questo esempio, è necessario il Functions Framework e aggiungere uno 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"
        ]
    }
}

Tieni presente che gli script definiti nel file composer.json non verranno eseguiti quando Composer può utilizzare un risultato memorizzato nella cache.

Aggiungi il framework di Functions come dipendenza

Il runtime PHP di Cloud Run Functions richiede che il framework di Functions sia un una dipendenza esplicita. Per aggiungere il framework di Functions come dipendenza, esegui il comando il seguente comando nella directory contenente il codice della funzione (questa directory deve contenere anche il file composer.json):

composer require google/cloud-functions-framework

In questo modo, il framework Functions viene aggiunto a composer.json e il package viene installato nella directory vendor/.

File autoload.php

Uno dei file contenuti nella directory vendor/ è autoload.php.

Aggiungi la seguente riga all'inizio degli script PHP per richiedere il parametro autoload.php, che requiresarà automaticamente l'altra funzione della tua funzione dependencies:

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

Per impostazione predefinita, la directory vendor/ viene ignorata nel file .gcloudignore generato per ridurre il numero di file inviati durante il deployment.

Aggiornamento delle dipendenze

Per aggiornare le dipendenze della funzione e il file composer.lock, utilizza la classe Comando update:

composer update

Questo risolve tutte le dipendenze del progetto e ne scrive le versioni esatte composer.lock.