Implementacje protokołu Protobuf

Dostępne są 2 implementacje Protobuf dla PHP:

  1. C: korzysta z rozszerzenia Protobuf PHP C, które zapewnia znacznie lepszą wydajność w czasie działania.
  2. PHP korzysta z google/protobufpakietu PHP, który nie wymaga dodatkowych rozszerzeń systemowych.

W miarę możliwości używaj implementacji w języku C, ale w przypadku ograniczeń związanych z bezpieczeństwem lub środowiskiem, które uniemożliwiają instalację rozszerzeń w języku C, możesz użyć implementacji w czystym PHP.

Implementacja PHP jest automatycznie instalowana jako zależność pakietu googleapis/gax-php w Composerze i jest używana w czasie działania tylko wtedy, gdy implementacja w języku C nie jest zainstalowana i włączona.

Implementacja w języku C

Aby zainstalować i skonfigurować rozszerzenie Protobuf PHP C:

  1. Zainstaluj rozszerzenie za pomocą PECL:

    sudo pecl install protobuf
    
  2. Włącz rozszerzenie w aktywnym pliku php.ini (w przypadku środowisk interfejsu wiersza poleceń i serwera internetowego, takich jak PHP-FPM czy Apache; aby znaleźć plik konfiguracji interfejsu wiersza poleceń, uruchom polecenie php --ini):

    extension=protobuf.so
    

Implementacja w PHP

Aby używać implementacji w czystym PHP, upewnij się, że implementacja w C jest wyłączona i że zainstalowane są wszystkie zależności googleapis/gax-php:

  1. Zakomentuj lub usuń dowolny wiersz extension=protobuf.so (lub extension=php_protobuf.dll) w plikach php.ini.
  2. Uruchom composer install w katalogu zawierającym plik composer.json projektu. Plik composer.json powinien określać googleads/google-ads-php jako zależność.

    .

Określanie używanej implementacji

Aby sprawdzić, czy rozszerzenie C jest włączone w środowisku interfejsu wiersza poleceń PHP, uruchom w terminalu to polecenie:

php -i | grep protobuf
  • Jeśli dane wyjściowe nie są puste (np. protobuf support => enabled), używasz implementacji w języku C.
  • W przeciwnym razie nie używasz implementacji w języku C, a biblioteka interfejsu Google Ads API PHP automatycznie przełącza się na implementację w czystym języku PHP zainstalowaną przez Composer.