Google Data PHP Client Library का इस्तेमाल शुरू करना

चेतावनी: यह पेज, Google के पुराने एपीआई, Google Data API के बारे में है. यह सिर्फ़ उन एपीआई के लिए काम का है जो Google Data API डायरेक्ट्री में शामिल हैं. इनमें से कई एपीआई को नए एपीआई से बदल दिया गया है. किसी खास नए एपीआई के बारे में जानकारी पाने के लिए, उस नए एपीआई का दस्तावेज़ देखें. नए एपीआई की मदद से अनुरोधों को अनुमति देने के बारे में जानकारी पाने के लिए, Google खातों के लिए पुष्टि करने और अनुमति देने की सुविधा लेख पढ़ें.

जोचेन हार्टमैन, Google Data APIs टीम
अक्टूबर 2008 में अपडेट किया गया (मूल रूप से इसे डेनियल होलवूट ने लिखा था)

परिचय

Google Data PHP Client Library, क्लास का एक पावरफ़ुल कलेक्शन है. इसकी मदद से, Google Data APIs के साथ इंटरैक्ट किया जा सकता है. हमारी अन्य क्लाइंट लाइब्रेरी के उलट, इसे लोकप्रिय Zend Framework के हिस्से के तौर पर पैकेज किया जाता है. हालांकि, इसे अलग से भी डाउनलोड किया जा सकता है. हमारी अन्य क्लाइंट लाइब्रेरी की तरह, यह भी ओपन-सोर्स है. इसे आसान और असरदार बनाने के लिए डिज़ाइन किया गया है, ताकि आप अपने प्रोजेक्ट पर तुरंत काम शुरू कर सकें.

पहले से इंस्टॉल करने की सुविधा

ऐसा हो सकता है कि आपकी डेवलपमेंट मशीन या वेब-सर्वर पर PHP पहले से इंस्टॉल हो. इसलिए, पहला चरण यह पुष्टि करना है कि PHP इंस्टॉल है. साथ ही, यह पक्का करना है कि PHP का वर्शन, क्लाइंट लाइब्रेरी के लिए इस्तेमाल किया जा सकता है. इसे देखने का सबसे आसान तरीका यह है कि आप अपने सर्वर पर, वेब से ऐक्सेस की जा सकने वाली डायरेक्ट्री में एक नई फ़ाइल रखें. फ़ाइल में यह जानकारी डालें:

<?php phpinfo(); ?>

इसके बाद, पक्का करें कि इसे वेब से ऐक्सेस किया जा सकता हो. इसके लिए, ज़रूरी अनुमतियां सेट करें. साथ ही, अपने ब्राउज़र में जाकर इसकी जगह पर जाएं. अगर PHP इंस्टॉल है और आपका सर्वर PHP पेजों को रेंडर कर सकता है, तो आपको नीचे दिए गए स्क्रीनशॉट जैसा कुछ दिखेगा:

php info पेज का स्क्रीनशॉट

इस स्क्रीनशॉट में, PHP की जानकारी वाला पेज दिखाया गया है. इस पेज पर, इंस्टॉल किए गए PHP के वर्शन (इस मामले में 5.2.6) के बारे में जानकारी मिलती है. साथ ही, यह भी पता चलता है कि कौनसे एक्सटेंशन चालू किए गए हैं ('कॉन्फ़िगरेशन कमांड' सेक्शन में) और PHP की इंटरनल कॉन्फ़िगरेशन फ़ाइल कहां मौजूद है ('लोड की गई कॉन्फ़िगरेशन फ़ाइल' सेक्शन में). अगर पेज नहीं दिखता है या आपके पास PHP का 5.1.4 से पुराना वर्शन है, तो आपको PHP का नया वर्शन इंस्टॉल करना होगा या उसे अपग्रेड करना होगा. अगर ऐसा नहीं है, तो अगले सेक्शन को छोड़कर, PHP क्लाइंट लाइब्रेरी इंस्टॉल करें.

ध्यान दें: अगर आपके पास कमांड लाइन का ऐक्सेस है और आपको कमांड लाइन स्क्रिप्ट चलाने के लिए PHP का इस्तेमाल करना है, तो कृपया इस लेख का कमांड लाइन PHP सेक्शन देखें.

PHP इंस्टॉल करना

हर प्लैटफ़ॉर्म पर इसे इंस्टॉल करने का तरीका थोड़ा अलग होता है. इसलिए, इंस्टॉल करते समय अपने प्लैटफ़ॉर्म के लिए दिए गए निर्देशों का पालन करना ज़रूरी है. इससे पहले कि हम आगे बढ़ें, यह बताना ज़रूरी है कि पहले से इंस्टॉल किए गए पैकेज ज़्यादा लोकप्रिय हो गए हैं. इनमें Apache वेब सर्वर, MySQL डेटाबेस, और PHP शामिल हैं. Windows, Mac OS X, और Linux के लिए, XAMPP प्रोजेक्ट उपलब्ध है. Mac OS X का इस्तेमाल करने वाले लोगों के पास, MAMP प्रोजेक्ट का इस्तेमाल करने का विकल्प भी होता है. ये दोनों पैकेज, PHP में OpenSSL के साथ काम करते हैं. इसकी ज़रूरत पुष्टि किए गए फ़ीड के साथ इंटरैक्ट करने के लिए होती है.

अगर आपको नीचे दिए गए तरीके से PHP इंस्टॉल करना है, तो पक्का करें कि आपने OpenSSL के लिए भी सहायता इंस्टॉल और चालू की हो. इसके बारे में ज़्यादा जानकारी, PHP साइट के OpenSSL सेक्शन में देखी जा सकती है. नीचे दिए गए सेक्शन में, PHP को खुद से इंस्टॉल करने का तरीका बताया गया है.

Windows पर

Windows पर PHP को इंस्टॉल करने या अपग्रेड करने का सबसे आसान तरीका, PHP इंस्टॉलर का इस्तेमाल करना है. यह PHP के डाउनलोड पेज पर उपलब्ध है.

  1. PHP के सबसे नए वर्शन के हिसाब से, Windows बाइनरी सेक्शन में PHP इंस्टॉलर का विकल्प चुनें और उसे डाउनलोड करने की अनुमति दें.
  2. इंस्टॉलर खोलें और इंस्टॉलेशन विज़र्ड के निर्देशों का पालन करें.
  3. जब विज़र्ड आपको प्रॉम्प्ट करे, तब अपने सिस्टम पर इंस्टॉल किया गया वेब सर्वर चुनें, ताकि वह सर्वर को PHP के साथ काम करने के लिए कॉन्फ़िगर कर सके.
  4. ऊपर दिए गए सेक्शन में बताए गए तरीके का इस्तेमाल करके, यह देखें कि आपने टैग सही तरीके से इंस्टॉल किया है या नहीं.

Mac OS X पर

PHP, OS X में शामिल है. हालांकि, इसका इस्तेमाल करने से पहले, आपको PHP के नए वर्शन पर अपग्रेड करना चाहिए. अपग्रेड करने के लिए, कई मुफ़्त बाइनरी पैकेज में से कोई भी पैकेज इंस्टॉल किया जा सकता है. इसके अलावा, इसे खुद भी कंपाइल किया जा सकता है. ज़्यादा जानकारी के लिए, PHP के दस्तावेज़ पेज पर Mac OS X पर इंस्टॉल करने के बारे में जानकारी देखें.

OS X को इंस्टॉल करने या सेट अप करने के बाद, इस दस्तावेज़ के इंस्टॉल करने से पहले सेक्शन में दिए गए चरणों का पालन करके, इंस्टॉल किए गए वर्शन की जांच करें.

Linux पर

Linux डिस्ट्रिब्यूशन के आधार पर, PHP इंस्टॉल करने के लिए पहले से मौजूद या इस्तेमाल में आसान सेटअप का विकल्प हो सकता है. उदाहरण के लिए, Ubuntu पर पैकेज मैनेजर का इस्तेमाल किया जा सकता है. इसके अलावा, टर्मिनल में यह टाइप करके भी इसे इंस्टॉल किया जा सकता है:

sudo apt-get install php5

अगर आपके Linux डिस्ट्रिब्यूशन के साथ पैकेज इंस्टॉल करने की सुविधा उपलब्ध नहीं है, तो आपको सोर्स कोड से इंस्टॉल करना होगा. Apache 1.3 के लिए PHP कंपाइल करने और Apache 2 के लिए PHP कंपाइल करने के बारे में पूरी जानकारी दी गई है. PHP.net पर, अन्य सर्वर के लिए भी निर्देश दिए गए हैं.

Google Data PHP Client Library इंस्टॉल करना

PHP का वर्शन इंस्टॉल करने के बाद, अब क्लाइंट लाइब्रेरी इंस्टॉल करें. क्लाइंट लाइब्रेरी, ओपन-सोर्स Zend Framework का हिस्सा है. हालांकि, इसे स्टैंडअलोन वर्शन के तौर पर भी डाउनलोड किया जा सकता है. अगर आपने Zend Framework का कोई वर्शन (1.6 या उसके बाद का वर्शन) पहले से ही इंस्टॉल किया हुआ है, तो आपको इसे इंस्टॉल करने की ज़रूरत नहीं है. ऐसा इसलिए, क्योंकि इसमें Google Data Client Library शामिल है. हालांकि, फ़्रेमवर्क का नया वर्शन इस्तेमाल करने से यह पक्का होता है कि आपको सभी नई सुविधाएं और गड़बड़ियों को ठीक करने वाले अपडेट मिलते रहें. इसलिए, आम तौर पर ऐसा करने का सुझाव दिया जाता है.

पूरा फ़्रेमवर्क डाउनलोड करने से, आपको न सिर्फ़ Google Data Client Library का ऐक्सेस मिलेगा, बल्कि बाकी फ़्रेमवर्क का भी ऐक्सेस मिलेगा. क्लाइंट लाइब्रेरी, Zend Framework का हिस्सा होने वाली कुछ अन्य क्लास का इस्तेमाल करती है. हालांकि, पूरे फ़्रेमवर्क को डाउनलोड करने की कोई ज़रूरत नहीं है, क्योंकि हमने उन्हें स्टैंडअलोन डाउनलोड में बंडल कर दिया है.

  1. Google Data Client Library की फ़ाइलें डाउनलोड करें. ("Google Data APIs" के लिए उस पेज पर खोजें.)
  2. डाउनलोड की गई फ़ाइलों को डीकंप्रेस करें. चार सब-डायरेक्ट्री बनाई जानी चाहिए:
    • demos — सैंपल ऐप्लिकेशन
    • documentation — क्लाइंट लाइब्रेरी फ़ाइलों के लिए दस्तावेज़
    • library — क्लाइंट लाइब्रेरी की सोर्स फ़ाइलें.
    • tests — ऑटोमेटेड टेस्टिंग के लिए यूनिट-टेस्ट फ़ाइलें.
  3. अपने PHP पाथ में library फ़ोल्डर की जगह जोड़ें (अगला सेक्शन देखें)

यह कुकी यह जांच करती है कि आपके पास क्लाइंट लाइब्रेरी की फ़ाइलों को ऐक्सेस करने की अनुमति है या नहीं

आखिरी चरण में, यह पक्का करना होता है कि आपके पास उस डायरेक्ट्री से PHP क्लाइंट लाइब्रेरी फ़ाइलों को रेफ़रंस देने और शामिल करने का विकल्प हो जिसमें प्रोजेक्ट बनाया जा रहा है. इसके लिए, PHP की कॉन्फ़िगरेशन फ़ाइल (php.ini) में include_path वैरिएबल सेट किया जाता है. include_path वैरिएबल में डायरेक्ट्री की कई लोकेशन होती हैं. जब require या include स्टेटमेंट जारी किया जाता है, तब PHP इन लोकेशन की जांच करता है. ये स्टेटमेंट, बाहरी क्लास, लाइब्रेरी या फ़ाइलों को आपकी मौजूदा स्क्रिप्ट में खींचते हैं. यह Java में import स्टेटमेंट की तरह ही काम करता है. आपको क्लाइंट लाइब्रेरी फ़ाइलों की जगह को, include_path में पहले से सेट की गई जगह में जोड़ना होगा. इसे दो तरीकों से पूरा किया जा सकता है. इन दोनों तरीकों के बारे में यहां बताया गया है:

  • कमांड लाइन से, अपनी php.ini कॉन्फ़िगरेशन फ़ाइल में include_path डायरेक्टिव को हमेशा के लिए सेट करें. इसके लिए, शेल ऐक्सेस और बदलाव करने की अनुमतियां ज़रूरी हैं.
  • "हर डायरेक्ट्री" के हिसाब से include_path पाथ वैरिएबल सेट करें. इसके लिए, Apache वेब सर्वर और .htaccess फ़ाइलें बनाने की सुविधा ज़रूरी है.
  • अपनी स्क्रिप्ट में शामिल करने का पाथ डाइनैमिक तौर पर सेट करने के लिए, set_include_path() फ़ंक्शन का इस्तेमाल करें. इसे आपकी हर .php फ़ाइल में डाइनैमिक तौर पर सेट किया जा सकता है.

अगर आपके पास शेल ऐक्सेस है और php.ini फ़ाइल में बदलाव करने की अनुमतियां हैं या अगर आपको अपनी लोकल मशीन पर कोड लिखना है, तो अपेंडिक्स A में दिए गए निर्देशों का पालन करें. अगर Apache वेब सर्वर का इस्तेमाल किया जा रहा है और आपके पास .htaccess फ़ाइलें बनाने का विकल्प है, तो "हर डायरेक्ट्री" लेवल पर include_path वैरिएबल सेट किया जा सकता है. इसका मतलब है कि जिस डायरेक्ट्री में काम किया जा रहा है उसमें मौजूद सभी फ़ाइलें, क्लाइंट लाइब्रेरी डायरेक्ट्री को अपने-आप रेफ़रंस कर सकती हैं.

नीचे दिए गए स्निपेट में दिखाए गए तरीके से, PHP कॉन्फ़िगरेशन के विकल्प तय किए जा सकते हैं:

# This works for PHP5 in both Apache versions 1 and 2
<IfModule mod_php5.c>
  php_value include_path        ".:/usr/local/lib/php:/path/to/ZendGdata/library"
</IfModule>

ध्यान दें: कॉन्फ़िगरेशन सेटिंग बदलने के बारे में ज़्यादा जानने के लिए, PHP मैनुअल देखें.

अगर आपके पास अपने सर्वर का शेल ऐक्सेस नहीं है और आपके पास .htaccess फ़ाइलों में बदलाव करने या उन्हें बनाने का विकल्प नहीं है, तो हमेशा set_include_path फ़ंक्शन का इस्तेमाल करें. ध्यान दें कि आपके include_path एट्रिब्यूट के लिए पहले से कोई वैल्यू सेट हो सकती है. इसलिए, पूरे पाथ को बदलने के बजाय, नई वैल्यू जोड़ने के लिए नीचे दिए गए मॉडल का इस्तेमाल करना बेहतर हो सकता है:

$clientLibraryPath = '/path/to/ZendGdata/library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);

ध्यान दें: set_include_path फ़ंक्शन के बारे में ज़्यादा जानकारी के लिए, कृपया PHP के मैन्युअल पेज देखें.

PHP इंस्टॉलेशन चेकर को चलाना

यह पुष्टि करने के लिए कि आपका शामिल किया गया पाथ सही तरीके से सेट किया गया है, PHP Installation Checker स्क्रिप्ट चलाएं. उस फ़ाइल के कॉन्टेंट को कॉपी करें और अपने सर्वर पर वेब से ऐक्सेस की जा सकने वाली डायरेक्ट्री में मौजूद किसी नई फ़ाइल में चिपकाएं. इसके बाद, अपने ब्राउज़र से उस फ़ाइल पर जाएं. अगर आपको नीचे दिए गए आउटपुट जैसा आउटपुट दिखता है, तो इसका मतलब है कि सब कुछ सही तरीके से कॉन्फ़िगर किया गया है. अब PHP क्लाइंट लाइब्रेरी का इस्तेमाल किया जा सकता है:

php इंस्टॉलेशन की जांच करने वाले टूल के आउटपुट का स्क्रीनशॉट

अगर आपको गड़बड़ियां दिखती हैं (नीचे दिए गए स्क्रीनशॉट में दिख रही हैं), तो पक्का करें कि आपने निर्देशों का पालन किया हो. ऐसा हो सकता है कि आपके पास एक्सटेंशन मौजूद न हों या आपका पाथ अब भी सही तरीके से सेट न हो. ध्यान रखें कि बदलावों को लागू करने के लिए, आपको अपना सर्वर रीस्टार्ट करना पड़ सकता है. यह सिर्फ़ तब लागू होता है, जब php.ini फ़ाइल में बदलाव किया जा रहा हो. यहां दिए गए स्क्रीनशॉट में दिखाया गया है कि include_path को /path/to/nowhere पर सेट किया गया है:

php इंस्टॉलेशन की जांच करने वाले टूल के आउटपुट का स्क्रीनशॉट

ध्यान दें: कृपया ध्यान दें कि PHP इंस्टॉलेशन चेकर, एक के बाद एक इन चीज़ों की जांच करता है: (1) क्या ज़रूरी PHP एक्सटेंशन इंस्टॉल किए गए हैं, (2) क्या include_path, PHP क्लाइंट लाइब्रेरी की डायरेक्ट्री की ओर इशारा करता है, (3) क्या SSL कनेक्शन बनाए जा सकते हैं. आखिर में, क्या YouTube Data API से कनेक्शन बनाया जा सकता है. अगर कोई टेस्ट पूरा नहीं होता है, तो बाकी टेस्ट नहीं चलाए जाएंगे.

क्लाइंट लाइब्रेरी इंस्टॉल हो जाने के बाद, अब सैंपल चलाने का समय है.

सैंपल चलाना

Zend/Gdata डायरेक्ट्री के रूट में डेमो का फ़ोल्डर होता है. इसमें कुछ सैंपल होते हैं, ताकि आपको शुरुआत करने में मदद मिल सके. इनमें से कुछ सैंपल, कमांड लाइन से चलाने के लिए डिज़ाइन किए गए हैं. जैसे, demos/Zend/Gdata/Blogger.php और demos/Zend/Gdata/Spreadsheet-ClientLogin.php. इन्हें php /path/to/example की मदद से चलाया जा सकता है. बाकी सैंपल को कमांड-लाइन और वेब ब्राउज़र, दोनों से चलाया जा सकता है. अगर आपको इन्हें ब्राउज़र में देखना है, तो इन्हें उस डायरेक्ट्री में रखना चाहिए जिसका इस्तेमाल वेब पेज दिखाने के लिए किया जाता है. इन सैंपल से, Google डेटा ऐप्लिकेशन को लिखने और चलाने के बारे में बुनियादी जानकारी मिलती है. हालांकि, अगर आपको इसके बारे में ज़्यादा जानना है, तो प्रोग्रामर के लिए अन्य संसाधन भी उपलब्ध हैं.

ध्यान दें: अगर आपको वेब पर आधारित डेमो ऑनलाइन देखने हैं, तो कृपया googlecodesamples.com पर जाएं और PHP ऐप्लिकेशन खोजें.

ज़्यादा जानकारी कहां मिलेगी

क्लाइंट लाइब्रेरी का हिस्सा होने वाली क्लास के बारे में जानकारी पाने के लिए, Zend Framework की साइट पर मौजूद एपीआई रेफ़रंस गाइड सबसे अच्छी जगह है. पक्का करें कि आपने ड्रॉप-डाउन से Zend_Gdata पैकेज चुना हो.

अब आप कोडिंग शुरू करने के लिए पूरी तरह तैयार हैं. इसलिए, आगे बढ़ें और कुछ बेहतरीन ऐप्लिकेशन लिखें. हमें आपके नतीजों का इंतज़ार रहेगा!

इन सेवाओं के लिए, PHP डेवलपर गाइड देखी जा सकती हैं:

PHP Client Library एक ओपन-सोर्स प्रोजेक्ट है. इसलिए, इसमें लगातार ज़्यादा एपीआई के लिए सहायता जोड़ी जा रही है. हर सेवा के लिए, सहायता ग्रुप अलग-अलग होते हैं. सहायता ग्रुप की सूची देखने के लिए, कृपया अक्सर पूछे जाने वाले सवालों का जवाब देखें.

अगर आपको एपीआई कॉल से जुड़ी समस्या हल करने में मदद चाहिए, तो नेटवर्क ट्रैफ़िक कैप्चर करने वाले टूल का इस्तेमाल करके एपीआई अनुरोधों को डीबग करने और Google Data API के साथ प्रॉक्सी सर्वर इस्तेमाल करने के बारे में लेख पढ़ें. Linux पर XAMPP इंस्टॉल करने और Windows पर XAMPP इंस्टॉल करने के बारे में कुछ बाहरी लेख भी उपलब्ध हैं. इन सभी लेखों के अलावा, Google Data API Tips ब्लॉग पर PHP क्लाइंट लाइब्रेरी के बारे में पोस्ट ज़रूर देखें.

परिशिष्ट A: php.ini कॉन्फ़िगरेशन फ़ाइल में PHP पाथ में बदलाव करना

PHP पाथ एक ऐसा वैरिएबल होता है जिसमें उन जगहों की सूची होती है जहां PHP, लोड होने के दौरान अतिरिक्त लाइब्रेरी खोजता है. PHP को आपकी मशीन या सर्वर पर Google Data PHP Client Library की फ़ाइलों को लोड और ऐक्सेस करने के लिए, उन्हें ऐसी जगह पर रखना होगा जिसके बारे में PHP को पता हो. इसके अलावा, फ़ाइलों की जगह को अपने PHP पाथ में जोड़ा जाना चाहिए. ध्यान दें कि php.ini फ़ाइल में किए गए बदलावों को लागू करने के लिए, आम तौर पर सर्वर को रीस्टार्ट करना पड़ता है. include_path वैरिएबल की मौजूदा वैल्यू की पुष्टि करने के लिए, PHP की जानकारी वाले पेज पर जाएं. इसके बारे में पहले बताया जा चुका है. पहली टेबल में, लोड की गई कॉन्फ़िगरेशन फ़ाइल सेल ढूंढें. इसके बाद, दाईं ओर मौजूद कॉलम में पाथ ढूंढें.

ध्यान दें: अगर आपको पता चलता है कि कमांड लाइन से php का इस्तेमाल किया जा रहा है, तो आपको पाथ वैरिएबल में बदलाव करना पड़ सकता है. अपेंडिक्स B: कमांड लाइन से PHP का इस्तेमाल करना लेख ज़रूर पढ़ें.

php.ini फ़ाइल मिलने के बाद, पाथ में जोड़ने के लिए यह तरीका अपनाएं.

  1. php.ini फ़ाइल को अपने पसंदीदा टेक्स्ट एडिटर में खोलें.
  2. PHP पाथ को रेफ़रंस करने वाली लाइन ढूंढें. यह include_path से शुरू होनी चाहिए.
  3. Zend Framework को सेव करने के लिए इस्तेमाल किए गए पाथ को, पहले से मौजूद पाथ की सूची में जोड़ें. इसके लिए, अपने नए पाथ के पहले, अपने ओएस के लिए तय किए गए सेपरेटर (Unix जैसे सिस्टम पर :, Windows पर ;) को जोड़ें. Unix जैसे सिस्टम पर सही पाथ कुछ ऐसा दिखेगा:
    /path1:/path2:/usr/local/lib/php/library
    Windows पर, यह कुछ ऐसा दिखेगा:
    \path1;\path2;\php\library
  4. फ़ाइल को सेव करके बंद करें.

ध्यान दें: Mac OS X पर, Finder उन फ़ाइलों को ऐक्सेस करने की अनुमति नहीं देता जो सिस्टम की जगहों पर मौजूद होती हैं. जैसे, /etc डायरेक्ट्री. इसलिए, vi या pico जैसे कमांड लाइन एडिटर का इस्तेमाल करके, इनमें बदलाव करना सबसे आसान हो सकता है. इसके लिए, pico /path/to/php.ini जैसे किसी निर्देश का इस्तेमाल करें.

अपेंडिक्स बी: कमांड लाइन से PHP का इस्तेमाल करना

PHP के वर्शन 5 से, PHP में कमांड-लाइन यूटिलिटी उपलब्ध है. इसे 'कमांड लाइन इंटरप्रेटर' के लिए सीएलआई कहा जाता है. इस यूटिलिटी का इस्तेमाल करके, कमांड लाइन से PHP स्क्रिप्ट चलाई जा सकती हैं. यह सुविधा तब काम आ सकती है, जब आपकी मशीन पर PHP स्थानीय तौर पर चल रहा हो और आपको कुछ स्क्रिप्ट की तुरंत जांच करनी हो. यह आपके सर्वर पर होगा. इसके लिए, शेल ऐक्सेस की ज़रूरत होगी. एक ज़रूरी बात यह है कि PHP आम तौर पर दो अलग-अलग php.ini फ़ाइलों का इस्तेमाल करता है. इनमें से एक फ़ाइल में, आपके सर्वर पर चल रहे PHP के लिए कॉन्फ़िगरेशन के विकल्प होते हैं. वहीं, दूसरी फ़ाइल में उन कॉन्फ़िगरेशन के बारे में जानकारी होती है जिनका इस्तेमाल PHP, कमांड लाइन से चलाते समय करता है. अगर आपको क्लाइंट लाइब्रेरी से कमांड-लाइन डेमो ऐप्लिकेशन चलाने हैं, तो आपको कमांड-लाइन php.ini फ़ाइल में भी बदलाव करना होगा.

इसे ढूंढने के लिए, Unix जैसे सिस्टम (Mac OS X, Linux वगैरह) पर ये कमांड टाइप करें:

php -i | grep php.ini

इस कमांड से, आपके टर्मिनल में यह जानकारी दिखनी चाहिए:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

ध्यान दें: आपके सिस्टम पर, पाथ की असल जगहें (/etc/php...) अलग हो सकती हैं.

अपेंडिक्स C: जवाब पाने के लिए सुझाव और जवाब

इस सेक्शन में, PHP के साथ काम करते समय डेवलपर को मिली कुछ समस्याओं और उनके सही समाधानों के बारे में बताया गया है.

XAMPP में dom-xml एक्सटेंशन से जुड़ी समस्या

PHP क्लाइंट लाइब्रेरी, DOMDocument क्लास का इस्तेमाल करती है. इससे XML अनुरोधों और जवाबों को PHP ऑब्जेक्ट में बदला जा सकता है. dom-xml एक्सटेंशन की वजह से, एक्सएमएल को मैनेज करने में समस्याएं आ सकती हैं. साथ ही, इससे गलत ट्रांसफ़ॉर्मेशन हो सकते हैं. हमारे कुछ डेवलपर को पता चला है कि XAMPP का इस्तेमाल करते समय, DOMDocument कंस्ट्रक्टर को पुराने फ़ंक्शन कॉल से बदल दिया जाता है. इस बारे में PHP की साइट पर बताया गया है. इस समस्या को ठीक करने के लिए, पक्का करें कि आपकी php.ini फ़ाइल में XML हैंडलिंग को बदला न गया हो. पक्का करें कि आपने कॉन्फ़िगरेशन फ़ाइल से php_domxml.dll के रेफ़रंस हटा दिए हों.

क्लाइंट लाइब्रेरी का इस्तेमाल करते समय अनुरोधों का समय खत्म हो रहा है

अगर आपको क्लाइंट लाइब्रेरी का इस्तेमाल करके, बड़े अनुरोध करने हैं, जैसे कि YouTube Data API पर वीडियो अपलोड करना, तो आपको अपनी Zend_Http_Client क्लास में timeout पैरामीटर बदलना पड़ सकता है. इसे आसानी से किया जा सकता है. इसके लिए, इंस्टैंटिएशन के दौरान $config पैरामीटर पास करें. इससे timeout की वैल्यू, 10 सेकंड की डिफ़ॉल्ट वैल्यू के अलावा कोई और वैल्यू सेट हो जाती है:

// assuming your Zend_Http_Client already exists as $httpClient
// and that you want to change the timeout from the 10 second default to 30 seconds

$config = array('timeout' => 30);
$httpClient->setConfig($config);

होस्टिंग की सुविधा देने वाली कुछ कंपनियां, अपने सर्वर से https कनेक्शन बनाने की अनुमति नहीं देती हैं

हमें पता चला है कि होस्टिंग की सुविधा देने वाली कुछ कंपनियां, आपको अपने डिफ़ॉल्ट सर्वर से https कनेक्शन बनाने की अनुमति नहीं देती हैं. अगर आपको नीचे दिए गए मैसेज जैसा कोई गड़बड़ी वाला मैसेज मिलता है, तो आपको सुरक्षित प्रॉक्सी के ज़रिए https कनेक्शन बनाने पड़ सकते हैं:

Unable to Connect to sslv2://www.google.com:443. Error #110: Connection timed out

होस्टिंग की सेवा देने वाली कंपनी के पास, इस्तेमाल किए जाने वाले प्रॉक्सी सर्वर के असली पते की जानकारी होनी चाहिए. यहां दिए गए स्निपेट में, PHP क्लाइंट लाइब्रेरी के साथ कस्टम प्रॉक्सी कॉन्फ़िगरेशन इस्तेमाल करने का तरीका बताया गया है:

// Load the proxy adapter class in addition to the other required classes
Zend_Loader::loadClass('Zend_Http_Client_Adapter_Proxy');

// Configure the proxy connection with your hostname and portnumber
$config = array(
    'adapter'    => 'Zend_Http_Client_Adapter_Proxy',
    'proxy_host' => 'your.proxy.server.net',
    'proxy_port' => 3128
);

// A simple https request would be an attempt to authenticate via ClientLogin
$proxiedHttpClient = new Zend_Http_Client('http://www.google.com:443', $config);

$username = 'foo@example.com';
$password = 'barbaz';

// The service name would depend on what API you are interacting with, here
// we are using the Google DocumentsList Data API
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;

// Try to perform the ClientLogin authentication using our proxy client.
// If there is an error, we exit since it doesn't make sense to go on.
try {

  // Note that we are creating another Zend_Http_Client
  // by passing our proxied client into the constructor.

  $httpClient = Zend_Gdata_ClientLogin::getHttpClient(
      $username, $password, $service, $proxiedHttpClient);

} catch (Zend_Gdata_App_HttpException $httpException) {

  // You may want to handle this differently in your application
  exit("An error occurred trying to connect to the proxy server\n" .
      $httpException->getMessage() . "\n");

}

बदलाव का इतिहास

1 अक्टूबर, 2008

इसे योकेन हार्टमैन ने अपडेट किया है. इस अपडेट में ये बदलाव किए गए हैं:

  • वेब सर्वर के लिए PHP कॉन्फ़िगरेशन को ज़्यादा साफ़ तौर पर बताया गया है. इसके लिए, कमांड-लाइन PHP से जुड़े सेक्शन को अपेंडिक्स में ले जाया गया है.
  • php.ini की एक से ज़्यादा कॉन्फ़िगरेशन फ़ाइलों के बारे में नोट जोड़ा गया.
  • include_path को डाइनैमिक तौर पर सेट करने के तरीके के बारे में सेक्शन जोड़े गए.
  • इंस्टॉलेशन की जांच करने वाली स्क्रिप्ट के बारे में सेक्शन जोड़ा गया.
  • ऑनलाइन सैंपल का लिंक जोड़ा गया.
  • XAMPP और MAMP के लिए लिंक जोड़े गए.
  • 'सुझाव और समाधान' वाला अपेंडिक्स जोड़ा गया.