Protobuf-Implementierungen

Für PHP sind zwei Protobuf-Implementierungen verfügbar:

  1. C: Verwendet die Protobuf-C-Erweiterung für PHP, die eine deutlich bessere Laufzeitleistung bietet.
  2. PHP: Verwendet das google/protobuf-PHP-Paket, für das keine zusätzlichen Systemerweiterungen erforderlich sind.

Verwenden Sie nach Möglichkeit die C-Implementierung. Die reine PHP-Implementierung kann verwendet werden, wenn Sicherheits- oder Umgebungsbeschränkungen die Installation von C-Erweiterungen verhindern.

Die PHP-Implementierung wird in Composer automatisch als Abhängigkeit von googleapis/gax-php installiert und zur Laufzeit nur dann verwendet, wenn die C-Implementierung nicht installiert und aktiviert ist.

C-Implementierung

So installieren und konfigurieren Sie die Protobuf-C-Erweiterung für PHP:

  1. Installieren Sie die Erweiterung mit PECL:

    sudo pecl install protobuf
    
  2. Aktivieren Sie die Erweiterung in Ihrer aktiven php.ini-Datei (sowohl für CLI- als auch für Webserverumgebungen wie PHP-FPM oder Apache; führen Sie php --ini aus, um die CLI-Konfigurationsdatei zu finden):

    extension=protobuf.so
    

PHP-Implementierung

Wenn Sie die reine PHP-Implementierung verwenden möchten, muss die C-Implementierung deaktiviert sein und alle Abhängigkeiten von googleapis/gax-php müssen installiert sein:

  1. Kommentieren Sie alle extension=protobuf.so-Zeilen (oder extension=php_protobuf.dll-Zeilen) in Ihren php.ini-Dateien aus oder entfernen Sie sie.
  2. Führen Sie composer install in dem Verzeichnis aus, das die Datei composer.json Ihres Projekts enthält. In der Datei composer.json sollte googleads/google-ads-php als Abhängigkeit angegeben sein.

    eine Mindestversion von Protobuf angegeben werden.

Ermitteln, welche Implementierung verwendet wird

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um zu prüfen, ob die C-Erweiterung in Ihrer PHP-CLI-Umgebung aktiviert ist:

php -i | grep protobuf
  • Wenn die Ausgabe nicht leer ist (z. B. protobuf support => enabled), verwenden Sie die C-Implementierung.
  • Andernfalls verwenden Sie die C-Implementierung nicht und die Google Ads API PHP-Bibliothek greift automatisch auf die reine PHP-Implementierung zurück, die von Composer installiert wurde.