Implementaciones de Protobuf

Hay dos implementaciones de Protobuf disponibles para PHP:

  1. C: Usa la extensión de C de Protobuf para PHP, que proporciona un rendimiento del tiempo de ejecución significativamente mejor.
  2. PHP: Usa el paquete google/protobuf de PHP, que no requiere extensiones adicionales del sistema.

Usa la implementación en C cuando sea posible, aunque la implementación en PHP puro se puede usar cuando las restricciones de seguridad o del entorno impiden la instalación de extensiones en C.

La implementación de PHP se instala automáticamente como una dependencia de googleapis/gax-php en Composer y se usa en el tiempo de ejecución solo si la implementación de C no está instalada ni habilitada.

Implementación en C

Para instalar y configurar la extensión de C de Protobuf para PHP, haz lo siguiente:

  1. Instala la extensión con PECL:

    sudo pecl install protobuf
    
  2. Habilita la extensión en tu archivo php.ini activo (para entornos de CLI y servidores web, como PHP-FPM o Apache; ejecuta php --ini para ubicar el archivo de configuración de la CLI):

    extension=protobuf.so
    

Implementación en PHP

Para usar la implementación de PHP puro, asegúrate de que la implementación de C esté inhabilitada y de que estén instaladas todas las dependencias de googleapis/gax-php:

  1. Marca como comentario o quita cualquier línea extension=protobuf.so (o extension=php_protobuf.dll) en tus archivos php.ini.
  2. Ejecuta composer install desde el directorio que contiene el archivo composer.json de tu proyecto. El archivo composer.json debe especificar googleads/google-ads-php como una dependencia.

Cómo determinar qué implementación se usa

Ejecuta el siguiente comando en tu terminal para verificar si la extensión C está habilitada en tu entorno de CLI de PHP:

php -i | grep protobuf
  • Si el resultado no está vacío (por ejemplo, protobuf support => enabled), estás usando la implementación en C.
  • De lo contrario, no estás usando la implementación en C, y la biblioteca de PHP de la API de Google Ads recurre automáticamente a la implementación en PHP puro instalada por Composer.