Protobuf の実装

PHP で利用可能な Protobuf 実装は次の 2 つです。

  1. C: Protobuf PHP C 拡張機能を使用します。これにより、ランタイム パフォーマンスが大幅に向上します。
  2. PHP: google/protobuf PHP パッケージを使用します。このパッケージには追加のシステム拡張機能は必要ありません。

可能な場合は C 実装を使用します。ただし、セキュリティや環境の制約により C 拡張機能をインストールできない場合は、純粋な PHP 実装を使用できます。

PHP 実装は、Composer の googleapis/gax-php の依存関係として自動的にインストールされます。C 実装がインストールされて有効になっていない場合にのみ、実行時に使用されます。

C の実装

Protobuf PHP C 拡張機能をインストールして構成する手順は次のとおりです。

  1. PECL を使用して拡張機能をインストールします。

    sudo pecl install protobuf
    
  2. アクティブな php.ini ファイルで拡張機能を有効にします(CLI とウェブサーバー環境(PHP-FPM や Apache など)の両方で有効にします。php --ini を実行して CLI 構成ファイルを見つけます)。

    extension=protobuf.so
    

PHP の実装

純粋な PHP 実装を使用するには、C 実装が無効になっており、googleapis/gax-php のすべての依存関係がインストールされていることを確認します。

  1. php.ini ファイル内の extension=protobuf.so(または extension=php_protobuf.dll)行をコメントアウトするか削除します。
  2. プロジェクトの composer.json ファイルを含むディレクトリから composer install を実行します。composer.json ファイルで、googleads/google-ads-php を依存関係として指定する必要があります。

使用されている実装を特定する

ターミナルで次のコマンドを実行して、PHP CLI 環境で C 拡張機能が有効になっているかどうかを確認します。

php -i | grep protobuf
  • 出力が空でない場合(protobuf support => enabled など)、C 実装を使用しています。
  • それ以外の場合は、C 実装を使用しておらず、Google Ads API PHP ライブラリは Composer によってインストールされた純粋な PHP 実装に自動的にフォールバックします。