PHP के लिए, दो Protobuf इंप्लिमेंटेशन उपलब्ध हैं:
- C: यह Protobuf PHP C एक्सटेंशन का इस्तेमाल करता है. इससे रनटाइम की परफ़ॉर्मेंस काफ़ी बेहतर होती है.
- PHP: यह
google/protobufPHP पैकेज का इस्तेमाल करता है. इसके लिए, सिस्टम के किसी अन्य एक्सटेंशन की ज़रूरत नहीं होती.
जब भी संभव हो, C इंप्लिमेंटेशन का इस्तेमाल करें. हालांकि, जब सुरक्षा या एनवायरमेंट से जुड़ी पाबंदियों की वजह से C एक्सटेंशन इंस्टॉल नहीं किए जा सकते, तब प्योर PHP इंप्लिमेंटेशन का इस्तेमाल किया जा सकता है.
PHP इंप्लिमेंटेशन, Composer में googleapis/gax-php की डिपेंडेंसी के तौर पर अपने-आप इंस्टॉल हो जाता है. साथ ही, इसका इस्तेमाल रनटाइम के दौरान सिर्फ़ तब किया जाता है, जब C इंप्लिमेंटेशन इंस्टॉल और चालू न हो.
C प्रोग्रामिंग लैंग्वेज में लागू करना
Protobuf PHP C एक्सटेंशन को इंस्टॉल और कॉन्फ़िगर करने के लिए:
PECL का इस्तेमाल करके एक्सटेंशन इंस्टॉल करें:
sudo pecl install protobufअपनी चालू
php.iniफ़ाइल में एक्सटेंशन चालू करें. यह सीएलआई और वेब सर्वर एनवायरमेंट, दोनों के लिए ज़रूरी है. जैसे, PHP-FPM या Apache. सीएलआई कॉन्फ़िगरेशन फ़ाइल का पता लगाने के लिए,php --iniचलाएं:extension=protobuf.so
PHP लागू करना
प्योर PHP इंप्लिमेंटेशन का इस्तेमाल करने के लिए, पक्का करें कि C इंप्लिमेंटेशन बंद हो और googleapis/gax-php की सभी डिपेंडेंसी इंस्टॉल हों:
- अपनी
php.iniफ़ाइलों में मौजूद किसी भीextension=protobuf.so(याextension=php_protobuf.dll) लाइन को टिप्पणी के तौर पर मार्क करें या हटाएं. उस डायरेक्ट्री से
composer installचलाएं जिसमें आपके प्रोजेक्ट कीcomposer.jsonफ़ाइल मौजूद है.composer.jsonफ़ाइल में,googleads/google-ads-phpको डिपेंडेंसी के तौर पर शामिल किया जाना चाहिए.
यह पता लगाना कि किस तरीके का इस्तेमाल किया जा रहा है
अपने टर्मिनल में यह कमांड चलाकर देखें कि आपके PHP सीएलआई एनवायरमेंट में C एक्सटेंशन चालू है या नहीं:
php -i | grep protobuf
- अगर आउटपुट खाली नहीं है (उदाहरण के लिए,
protobuf support => enabled), तो इसका मतलब है कि C इंप्लिमेंटेशन का इस्तेमाल किया जा रहा है. - अगर ऐसा नहीं है, तो इसका मतलब है कि C इंप्लिमेंटेशन का इस्तेमाल नहीं किया जा रहा है. ऐसे में, Google Ads API PHP लाइब्रेरी, Composer से इंस्टॉल किए गए प्योर PHP इंप्लिमेंटेशन पर अपने-आप वापस चली जाती है.