Especificar dependencias en PHP

Utiliza Composer para gestionar las dependencias en PHP.

Instalar Composer

Si aún no tienes instalado Composer, puedes hacerlo de la siguiente manera:

  1. Descarga Composer en la ubicación que quieras.

  2. Una vez descargado, mueve el archivo composer.phar a un directorio que esté en la ruta del sistema. Por ejemplo:

    mv composer.phar /usr/local/bin/composer
    

Crear un archivo composer.json

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

composer init

Cuando ejecutas este comando, se te pide de forma interactiva que rellenes los campos y se te ofrecen algunos valores predeterminados inteligentes.

Declarar dependencias

Para declarar dependencias, añade un archivo composer.json que contenga dependencias al directorio de código de tu función. En este ejemplo, necesitamos el Functions Framework y añadimos 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 tu archivo composer.json no se ejecutarán cuando Composer pueda usar un resultado almacenado en caché.

Añadir Functions Framework como dependencia

El entorno de ejecución de PHP de las funciones de Cloud Run requiere que Functions Framework sea una dependencia explícita. Para añadir 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 añade Functions Framework a tu composer.json y se instala el paquete en el directorio vendor/.

Archivo autoload.php

Uno de los archivos incluidos en tu directorio vendor/ es autoload.php.

Añade la siguiente línea a la parte superior de tus secuencias de comandos PHP para requerir el archivo autoload.php, que require automáticamente las demás dependencias de tu función:

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

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

Actualizar dependencias

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

composer update

De esta forma, se resuelven todas las dependencias del proyecto y se escriben sus versiones exactas en composer.lock.