پیاده سازی های Protobuf

دو پیاده‌سازی Protobuf برای PHP موجود است:

  1. C : از افزونه Protobuf PHP C استفاده می‌کند که عملکرد زمان اجرا را به طور قابل توجهی بهبود می‌بخشد.
  2. PHP : از بسته google/protobuf PHP استفاده می‌کند که به هیچ افزونه سیستمی اضافی نیاز ندارد.

در صورت امکان از پیاده‌سازی C استفاده کنید، اگرچه پیاده‌سازی خالص PHP نیز می‌تواند زمانی که محدودیت‌های امنیتی یا محیطی مانع نصب افزونه‌های C می‌شوند، مورد استفاده قرار گیرد.

پیاده‌سازی 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 API گوگل ادز به طور خودکار به پیاده‌سازی خالص PHP نصب شده توسط کامپوزر برمی‌گردد.