Implementações de Protobuf

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

  1. C: usa a extensão C do Protobuf PHP, que oferece um desempenho de execução significativamente melhor.
  2. PHP: usa o pacote PHP google/protobuf, que não exige extensões adicionais 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 ambiente impedem a instalação de extensões em C.

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

Implementação em C

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

  1. Instale a extensão usando o PECL:

    sudo pecl install protobuf
    
  2. Ative a extensão no arquivo php.ini ativo (para ambientes de servidor da Web e CLI, 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 em PHP puro, 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 comando a seguir 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.