Реализации Protobuf

Для PHP доступны две реализации Protobuf:

  1. C. Используется расширение Protobuf PHP C, которое обеспечивает значительно более высокую производительность во время выполнения.
  2. PHP Используется пакет PHP google/protobuf, для которого не требуются дополнительные системные расширения.

По возможности используйте реализацию на C, однако если ограничения безопасности или среды не позволяют установить расширения C, можно использовать реализацию на чистом PHP.

Реализация PHP автоматически устанавливается как зависимость googleapis/gax-php в Composer и используется во время выполнения, только если реализация C не установлена и не включена.

Реализация на C

Чтобы установить и настроить расширение Protobuf PHP C, выполните следующие действия:

  1. Установите расширение с помощью PECL:

    sudo pecl install protobuf
    
  2. Включите расширение в активном файле php.ini (как для CLI, так и для веб-серверов, например PHP-FPM или Apache; чтобы найти файл конфигурации CLI, выполните команду php --ini):

    extension=protobuf.so
    

Реализация на PHP

Чтобы использовать реализацию на чистом PHP, убедитесь, что реализация на C отключена и установлены все зависимости googleapis/gax-php:

  1. Закомментируйте или удалите все строки extension=protobuf.so (или extension=php_protobuf.dll) в файлах php.ini.
  2. Запустите composer install из каталога, содержащего файл composer.json вашего проекта. В файле composer.json необходимо указать googleads/google-ads-php в качестве зависимости.

Как определить, какая реализация используется

Чтобы проверить, включено ли расширение C в среде PHP CLI, выполните в терминале следующую команду:

php -i | grep protobuf
  • Если выходные данные не пустые (например, protobuf support => enabled), вы используете реализацию на C.
  • В противном случае вы не используете реализацию C, и библиотека PHP Google Ads API автоматически возвращается к чистой реализации PHP, установленной Composer.