Specificare le dipendenze in PHP

PHP utilizza Composer per gestire le dipendenze. Se utilizzi Cloud Shell, composer è preinstallato. In caso contrario, segui le istruzioni di 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.

Aggiungere il framework di funzioni come dipendenza

Il runtime PHP delle funzioni Cloud Run richiede che il framework Functions sia una dipendenza esplicita. Per aggiungere il framework Functions come dipendenza, esegui 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 pacchetto 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 file autoload.php, che require automaticamente le altre dipendenze della funzione:

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 il comando update:

composer update

In questo modo vengono risolte tutte le dipendenze del progetto e le relative versioni esatte vengono scritte in composer.lock.