Spécifier les dépendances en PHP

PHP utilise Composer pour gérer les dépendances. Si vous utilisez Cloud Shell, Composer est préinstallé. Sinon, suivez les instructions d'installation de Composer.

Créer un fichier composer.json

Le fichier composer.json répertorie les dépendances de votre fonction. Vous pouvez le créer manuellement, ou bien exécuter la commande suivante :

composer init

Lorsque vous exécutez cette commande, vous êtes invité à renseigner les différents champs. Des paramètres par défaut intelligents y sont cependant déjà proposés.

Déclarer des dépendances

Pour déclarer des dépendances, ajoutez un fichier composer.json qui va contenir les dépendances au répertoire de votre code de fonction. Dans cet exemple, nous avons besoin du framework des fonctions et d'ajouter un 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"
        ]
    }
}

Notez que les scripts définis dans votre fichier composer.json ne s'exécutent pas lorsque Composer peut utiliser un résultat mis en cache.

Ajouter un framework des fonctions en tant que dépendance

L'environnement d'exécution PHP des fonctions Cloud Run nécessite que le framework des fonctions soit une dépendance explicite. Pour ajouter le framework des fonctions en tant que dépendance, exécutez la commande suivante dans le répertoire contenant le code de votre fonction (ce répertoire doit également contenir le fichier composer.json) :

composer require google/cloud-functions-framework

Cette commande ajoute le framework des fonctions à votre fichier composer.json et installe le package dans le répertoire vendor/.

Fichier autoload.php

L'un des fichiers contenus dans votre répertoire vendor/ est autoload.php.

Ajoutez la ligne suivante au début de vos scripts PHP pour exiger le fichier autoload.php, ce qui va exiger (require) automatiquement les autres dépendances de votre fonction :

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

Par défaut, le répertoire vendor/ est ignoré dans le fichier .gcloudignore généré afin de réduire le nombre de fichiers envoyés en déploiement.

Mettre à jour les dépendances

Pour mettre à jour les dépendances de votre fonction et le fichier composer.lock, utilisez la commande update :

composer update

Cela résout toutes les dépendances du projet et écrit leurs versions exactes dans le fichier composer.lock.