Especifica dependencias en PHP

PHP usa Composer para administrar dependencias. Si usas Cloud Shell, Composer está preinstalado. De lo contrario, sigue las instrucciones de instalación de Composer.

Crea un archivo composer.json

El archivo composer.json enumera las dependencias de tu función. Puedes crearlo de forma manual o ejecutar el siguiente comando:

composer init

Cuando ejecutas este comando, te pide que completes los campos de forma interactiva, a la vez que ofrece algunos valores predeterminados inteligentes.

Cómo declarar dependencias

Para declarar dependencias, agrega un archivo composer.json que contenga las dependencias al directorio de código de tu función. En este ejemplo, se requiere Functions Framework y agrega una secuencia de comandos 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"
        ]
    }
}

Ten en cuenta que las secuencias de comandos definidas en el archivo composer.json no se ejecutarán cuando Composer pueda usar un resultado almacenado en caché.

Agrega Functions Framework como dependencia

El entorno de ejecución de PHP para funciones de Cloud Run requiere que Functions Framework sea una dependencia explícita. Para agregar Functions Framework como dependencia, ejecuta el siguiente comando en el directorio que contiene el código de tu función (este directorio también debe contener el archivo composer.json):

composer require google/cloud-functions-framework

De esta forma se agrega Functions Framework a tu composer.json y, luego, instala el paquete en el directorio vendor/.

Archivo autoload.php

Uno de los archivos que se encuentran en tu directorio vendor/ es autoload.php.

Agrega la siguiente línea a la parte superior de tus secuencias de comandos de PHP para solicitar el archivo autoload.php, que ejecuta automáticamente require las otras dependencias de la función:

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

De forma predeterminada, el directorio vendor/ se ignora en el archivo .gcloudignore generado para reducir la cantidad de archivos enviados en la implementación.

Actualiza las dependencias

Para actualizar las dependencias de tu función y el archivo composer.lock, usa el comando update:

composer update

Esto resuelve todas las dependencias del proyecto y escribe sus versiones exactas en composer.lock.