Abhängigkeiten in PHP angeben

PHP verwendet Composer zum Verwalten von Abhängigkeiten. Wenn Sie Cloud Shell verwenden, ist Composer bereits vorinstalliert. Andernfalls folgen Sie der Installationsanleitung von Composer.

Datei composer.json erstellen

In der Datei composer.json sind die Abhängigkeiten Ihrer Funktion aufgelistet. Sie können die Datei entweder manuell erstellen oder den folgenden Befehl ausführen:

composer init

Wenn Sie diesen Befehl ausführen, werden Sie interaktiv aufgefordert, die Felder auszufüllen, wobei einige sinvolle Standardwerte vorgeschlagen werden.

Abhängigkeiten deklarieren

Zum Deklarieren von Abhängigkeiten fügen Sie dem Funktionscodeverzeichnis eine composer.json-Datei mit Abhängigkeiten hinzu. In diesem Beispiel benötigen Sie das Functions Framework und fügen ein start-Skript hinzu:

{
    "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"
        ]
    }
}

Beachten Sie, dass in der composer.json-Datei definierte Skripts nicht ausgeführt werden, wenn Composer ein im Cache gespeichertes Ergebnis verwenden kann.

Functions Framework als Abhängigkeit hinzufügen

Für die PHP-Laufzeit von Cloud Run-Funktionen muss das Functions Framework eine explizite Abhängigkeit sein. Führen Sie den folgenden Befehl in dem Verzeichnis mit dem Funktionscode aus, um Functions Framework als Abhängigkeit hinzuzufügen. Dieses Verzeichnis muss auch diecomposer.json-Datei enthalten:

composer require google/cloud-functions-framework

Dadurch wird Functions Framework zu composer.json hinzugefügt und das Paket im Verzeichnis vendor/ installiert.

autoload.php-Datei

Eine der Dateien in Ihrem vendor/-Verzeichnis ist autoload.php.

Fügen Sie oben in Ihren PHP-Skripts die folgende Zeile ein, um die Datei autoload.php erforderlich zu machen. Dabei werden die anderen Abhängigkeiten Ihrer Funktion automatisch mit require versehen:

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

Das Verzeichnis vendor/ wird standardmäßig in der generierten Datei .gcloudignore ignoriert, um die Anzahl der in der Bereitstellung gesendeten Dateien zu reduzieren.

Abhängigkeiten aktualisieren

Verwenden Sie den Befehl update, um die Abhängigkeiten Ihrer Funktion und die composer.lock-Datei zu aktualisieren:

composer update

Dadurch werden alle Abhängigkeiten des Projekts aufgelöst und die exakten Versionen in composer.lock geschrieben.