Implementações de Protobuf

Há duas implementações do Protobuf disponíveis para PHP:

  1. C: usa a extensão Protobuf PHP C, que oferece um desempenho de ambiente de execução significativamente melhor.
  2. PHP: usa o pacote PHP google/protobuf, que não requer outras extensões do sistema.

Use a implementação em C sempre que possível, embora a implementação em PHP puro possa ser usada quando restrições de segurança ou de ambiente impedirem a instalação de extensões em C.

A implementação do PHP é instalada automaticamente como uma dependência de googleapis/gax-php no Composer e é usada no ambiente de execução somente se a implementação do C não estiver instalada e ativada.

Implementação em C

Para instalar e configurar a extensão Protobuf PHP C:

  1. Instale a extensão usando PECL:

    sudo pecl install protobuf
    
  2. Ative a extensão no arquivo php.ini ativo (para ambientes de CLI e de servidor da Web, como PHP-FPM ou Apache; execute php --ini para localizar o arquivo de configuração da CLI):

    extension=protobuf.so
    

Implementação PHP

Para usar a implementação pura do PHP, verifique se a implementação em C está desativada e se todas as dependências de googleapis/gax-php estão instaladas:

  1. Comente ou remova qualquer linha extension=protobuf.so (ou extension=php_protobuf.dll) nos arquivos php.ini.
  2. Execute composer install no diretório que contém o arquivo composer.json do projeto. O arquivo composer.json precisa especificar googleads/google-ads-php como uma dependência.

Determinar qual implementação está sendo usada

Execute o seguinte comando no terminal para verificar se a extensão C está ativada no ambiente da CLI do PHP:

php -i | grep protobuf
  • Se a saída não estiver vazia (por exemplo, protobuf support => enabled), você está usando a implementação em C.
  • Caso contrário, você não está usando a implementação em C, e a biblioteca PHP da API Google Ads volta automaticamente para a implementação em PHP puro instalada pelo Composer.