Hay dos implementaciones de Protobuf disponibles para PHP:
- C: Usa la extensión de C de Protobuf para PHP, que proporciona un rendimiento del tiempo de ejecución significativamente mejor.
- PHP: Usa el paquete
google/protobufde 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:
Instala la extensión con PECL:
sudo pecl install protobufHabilita la extensión en tu archivo
php.iniactivo (para entornos de CLI y servidores web, como PHP-FPM o Apache; ejecutaphp --inipara 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:
- Marca como comentario o quita cualquier línea
extension=protobuf.so(oextension=php_protobuf.dll) en tus archivosphp.ini. Ejecuta
composer installdesde el directorio que contiene el archivocomposer.jsonde tu proyecto. El archivocomposer.jsondebe especificargoogleads/google-ads-phpcomo 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.