Google डेटा PHP क्लाइंट लाइब्रेरी के साथ शुरू करना

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

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

सुविधा के बारे में जानकारी

Google Data PHP क्लाइंट लाइब्रेरी, Google Data API से इंटरैक्ट करने वाली क्लास का एक बेहतरीन कलेक्शन है. हमारी अन्य क्लाइंट लाइब्रेरी के उलट, इसे लोकप्रिय Zen फ़्रेमवर्क के हिस्से के तौर पर पैक किया जाता है, लेकिन इसे अलग से डाउनलोड भी किया जा सकता है. हमारी अन्य क्लाइंट लाइब्रेरी की तरह ही यह ओपन सोर्स भी है और इसे सरल और सक्षम बनाया गया है, जिससे आप अपने प्रोजेक्ट तेज़ी से शुरू कर सकते हैं.

पूर्व-इंस्टॉलेशन

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

<?php phpinfo(); ?>

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

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

स्क्रीनशॉट में 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. (Windows बाइनरी सेक्शन में) PHP इंस्टॉलर के सबसे नए वर्शन से जुड़ा विकल्प चुनें और इसे डाउनलोड करने की अनुमति दें.
  2. इंस्टॉलर खोलें और इंस्टॉलेशन विज़ार्ड के निर्देशों का पालन करें.
  3. जब विज़र्ड आपको संकेत करे, तो अपने सिस्टम पर इंस्टॉल किया गया वेब सर्वर चुनें, ताकि वह सर्वर को PHP के साथ काम करने के लिए कॉन्फ़िगर कर सके.
  4. ऊपर दिए गए सेक्शन में बताए गए तरीके से, अपने ऐप्लिकेशन को इंस्टॉल करें.

Mac OS X पर

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

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

Linux पर

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

sudo apt-get install php5

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

Google डेटा PHP क्लाइंट लाइब्रेरी इंस्टॉल करना

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

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

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

यह पक्का किया जा रहा है कि क्लाइंट लाइब्रेरी की फ़ाइलें ऐक्सेस की जा सकती हैं या नहीं

आखिरी चरण में यह पक्का करना है कि आप जिस डायरेक्ट्री में प्रोजेक्ट बना रहे हैं उसमें बनी PHP Client Library की फ़ाइलों को रेफ़रंस के तौर पर शामिल किया जा सकता है. PHP की कॉन्फ़िगरेशन फ़ाइल (php.ini) में include_path वैरिएबल सेट करके ऐसा किया जा सकता है. include_path वैरिएबल में ऐसे कई डायरेक्ट्री स्थान होते हैं, जहां आपके ज़रिए require या include विवरण जारी किया जाता है, जो बाहरी क्लास, लाइब्रेरी या फ़ाइलों को आपकी मौजूदा स्क्रिप्ट में ले जाता है, जो कि 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 क्लाइंट लाइब्रेरी इस्तेमाल कर सकते हैं:

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 डेटा ऐप्लिकेशन को लिखने और चलाने का बुनियादी तरीका बताया जाना चाहिए. हालांकि, जब आप ज़्यादा जानने के लिए तैयार हों, तो पूछताछ करने वाले प्रोग्रामर के लिए दूसरे संसाधन भी उपलब्ध होते हैं.

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

ज़्यादा जानकारी कहां से लें

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

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

आपको इन सेवाओं के लिए PHP डेवलपर गाइड मिल सकती हैं:

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

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

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

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

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

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

  1. php.ini फ़ाइल को अपने पसंदीदा टेक्स्ट एडिटर में खोलें.
  2. PHP पाथ का संदर्भ देने वाली लाइन का पता लगाएं, यह include_path से शुरू होना चाहिए.
  3. Zend फ़्रेमवर्क को पहले से मौजूद स्थानों की सूची में जोड़ें, अपने नए पथ को अपने OS के लिए तय विभाजक (: Unix जैसे सिस्टम पर, ; Windows पर) के साथ पहले से लंबित रखें. यूनिक्स जैसे सिस्टम पर सही पाथ कुछ ऐसा दिखेगा:
    /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 जैसे निर्देश दें.

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

PHP वर्शन 5 के अनुसार, PHP में एक कमांड-लाइन उपयोगिता उपलब्ध है, जिसे 'कमांड लाइन अनुवादक' के लिए CLI कहा जाता है. इस सुविधा का इस्तेमाल करने से, कमांड लाइन से php स्क्रिप्ट चलाई जा सकती हैं. यह तब संभव होता है जब आप अपनी मशीन पर स्थानीय तौर पर PHP चला रहे हों और कुछ स्क्रिप्ट की तुरंत जांच करने के तरीके ढूंढ रहे हों. बेशक, इसके लिए आपके सर्वर पर शेल पहुंच की आवश्यकता होगी. ध्यान देने वाली एक ज़रूरी बात यह है कि आम तौर पर PHP दो अलग-अलग php.ini फ़ाइलों का इस्तेमाल करती है, एक में आपके सर्वर पर चल रहे 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 क्लाइंट लाइब्रेरी, XML अनुरोधों और रिस्पॉन्स को PHP ऑब्जेक्ट में बदलने के लिए, DOMDocument क्लास का इस्तेमाल करती है. dom-xml एक्सटेंशन की वजह से एक्सएमएल हैंडलिंग में समस्याएं आ सकती हैं और इस वजह से कन्वर्ज़न में गड़बड़ी हो सकती है. हमारे कुछ डेवलपर ने यह पाया है कि XAMPP का इस्तेमाल करने पर, DOMDocument कंस्ट्रक्टर, पुरानी फ़ंक्शन कॉल से बदल जाता है, जैसा कि PHP साइट पर बताया गया है. इस समस्या को ठीक करने के लिए, पक्का करें कि आपकी php.ini फ़ाइल में एक्सएमएल हैंडलिंग ओवरराइट नहीं हुई है. अपनी कॉन्फ़िगरेशन फ़ाइल से 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 कनेक्शन बनाने की अनुमति नहीं देती हैं. अगर आपको गड़बड़ी का ऐसा मैसेज मिलता है जो नीचे दिया गया है, तो आपको अपने एचटीटीपीएस कनेक्शन को सुरक्षित प्रॉक्सी की मदद से बनाने की ज़रूरत हो सकती है:

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 कॉन्फ़िगरेशन फ़ाइलों के बारे में एक नोट जोड़ा गया.
  • डाइनैमिक तौर पर शामिल किए जाने वाले हेडर के पाथ को शामिल करने के तरीके से जुड़े सेक्शन जोड़े गए.
  • इंस्टॉलेशन चेकर स्क्रिप्ट पर सेक्शन जोड़ा गया.
  • ऑनलाइन सैंपल में लिंक जोड़ा गया.
  • XAMPP और MAMP के लिए लिंक जोड़े गए.
  • 'संकेत और समाधान' अपेंडिक्स जोड़ा गया.