Implementaciones de Protobuf

Hay dos implementaciones de Protobuf disponibles para PHP:

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

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

La implementación de PHP se instala automáticamente como una dependencia de googleapis/gax-php en Composer y se usa en el entorno 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, sigue estos pasos:

  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 de servidor 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 pura, asegúrate de que la implementación de C esté inhabilitada y de que todas las dependencias de googleapis/gax-php estén instaladas:

  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.

Determina qué implementación se está usando

Ejecuta el siguiente comando en tu terminal para verificar si la extensión de C está habilitada en tu entorno de la 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 de C.
  • De lo contrario, no estás usando la implementación de C, y la biblioteca de PHP de la API de Google Ads recurre automáticamente a la implementación de PHP pura instalada por Composer.