2010-01-16 17 views
10

मैं कॉच डीबी के लिए एक PHP क्लाइंट पर काम कर रहा हूं। HTTP और curl के बारे में php.net दस्तावेज़ के माध्यम से ब्राउज़ करते समय, मैं PECL_HTTP एक्सटेंशन में आया था। पहली नज़र में, मुझे लगता है कि मैं curl के बजाय इस पीईसीएल एक्सटेंशन का उपयोग करना चाहता हूं क्योंकि इसका उपयोग करना बहुत आसान है, और मैं वैसे भी बहुत जटिल HTTP काम नहीं कर रहा हूं। इसके अलावा मैं हमेशा नई चीजों की कोशिश करना पसंद करता हूं, इसलिए मुझे अपने पैरों को गीला करने में कोई फर्क नहीं पड़ता।PHP PECL_HTTP बनाम कर्ल एक्सटेंशन

जहाँ तक StackOverflow समुदाय के लिए मेरे सवाल के रूप में:

  • किसी को भी दोनों PECL_HTTP और cURL एक्सटेंशन का इस्तेमाल किया गया है?
  • क्या पीईसीएल एक्सटेंशन में कोई गंभीर प्रदर्शन समस्या है?
  • क्या पीईसीएल एक्सटेंशन उपयोगकर्ता के अनुकूल है क्योंकि यह सतह पर दिखाई देता है?
  • क्या कोशिश की गई और सही कर्ल लाइब्रेरी अभी भी बेहतर है?

संपादित करें: यह पता चला है के रूप में, PECL_HTTP विस्तार हुड के नीचे cURL स्रोत कोड के कुछ का उपयोग करता है, तो वे पूरी तरह से अलग जानवरों नहीं हैं। दोनों PHP में एक्सटेंशन संकलित भी हैं।

+0

मत भूलना कि तुम धाराओं का इस्तेमाल करके साइटों को एक्सेस कर सकते हैं। उदाहरण के लिए, 'file_get_contents (' http://google.com ');' Google के मुखपृष्ठ का स्रोत डाउनलोड करेगा। – ryeguy

+1

@ryeguy: और सिर्फ इसलिए कि PHP 'file_put_contents (' http://google.com ',' ... ') कर रहा है, इसलिए आपके लिए Google होमपेज हैक करेगा। –

+0

fie_get_contents() + stream_context का उपयोग POST डेटा (या कोचडीबी और अन्य आरईएसटी कॉल के लिए आवश्यक अन्य HTTP विधियों को कॉल करने के लिए भी किया जा सकता है) – johannes

उत्तर

2

पीईसीएल_एचटीटीपी विस्तार का उपयोग करने के लिए बहुत आसान साबित हुआ है, लगभग कुछ स्थानों में आधे में अपना कोड काट रहा है। :)

0

मैंने अभी तक PECL_HTTP को आजमाया नहीं है। मैं curl का उपयोग करना पसंद करता हूं, क्योंकि मैं पहले कमांड लाइन में इसका परीक्षण कर सकता हूं। साथ ही, curl मानक लिनक्स स्थापना में उपलब्ध है, इसलिए मैं इसे विभिन्न लिनक्स-आधारित होस्टिंग में उपलब्ध होने की उम्मीद कर सकता हूं। मुझे पीईसीएल उपलब्धता के बारे में पता नहीं है, क्योंकि मैं अपने कोड में किसी भी फ़ंक्शन का उपयोग नहीं करता हूं।

3

मेरी राय में कर्ल सरल और चुनने में आसान है। PHP कुकबुक (O'Reilly, 2002) में CURL को विभिन्न (प्रदर्शन) कारणों के लिए चुना गया था।

+0

curl में अंत में अधिक सुविधाएं हैं तो PECL_HTTP और क्योंकि यह एक संकलित कोड एक्सटेंशन है, यह हमेशा तेज़ी से निष्पादित होगा, और कठोर परिदृश्यों को पूरा करने के इच्छुक होने पर curl के लिए कहीं अधिक संदर्भ सामग्री उपलब्ध है। – Kitson

+1

@ किटसन, पीईसीएल एक्सटेंशन भी संकलित एक्सटेंशन हैं;) –

+0

... और आईओ संचालन के लिए प्रदर्शन जीत न्यूनतम है - अधिकांश समय नेटवर्क पर खर्च की जाती है। – johannes

2

सबसे पहले मुझे कहना है कि हम दोनों हमारी कंपनी और हैंडलिंग से दोनों का इस्तेमाल करते हैं, मुझे php_http अधिक पसंद है और मैं माइक के काम की सराहना करता हूं।

लेकिन हमने php_http को छोड़ दिया क्योंकि यह वेनिला php में बंडल नहीं किया गया है। हम एक विंडोज वातावरण में काम कर रहे हैं और प्रत्येक pecl एक्सटेंशन के लिए जो php द्वारा बंडल नहीं किया गया है, हमें इसे स्वयं संकलित करना है (जो एक बुरी चीज नहीं है)। संकलन करते समय हमें एक त्रुटि मिली कि कुछ शीर्षलेख गायब थे। यह पता चला कि यह पूरी तरह से हमारी गलती थी, क्योंकि यह दस्तावेज़ीकरण में स्पष्ट रूप से कहा गया है।

और php_http के संस्करण 2.0 के बाद से, यह दो में से कोई भी मानक dependancies है: - raphf 1.0.0 या नए - propro 1.0.0 या नए

तो हम केवल php_http की तुलना में अधिक संकलित करने के लिए की जरूरत है। लेकिन प्रोप्रो 1.0.0 (2013-08-12) config.w32 डाउनलोड में गायब था (कम से कम लेखन की स्थिति में)। तो हमें अपना खुद का लिखना पड़ा। और इतने पर ...

अंत में हमने इसे PHP 5.5 वीसी 11 x86 के लिए काम किया, लेकिन इसमें कुछ समय लगा। ऐसी कंपनियों में जिनके पास कभी-कभी ऐसी चीजों पर खर्च करने का समय नहीं होता है। कर्ल हमेशा बॉक्स से बाहर काम करता है, क्योंकि यह बंडल है। Php_http का उपयोग न करने का यह एक गंभीर कारण हो सकता है।

कुछ मैं वास्तव में सराहना करता हूं कि अगर php_http इसे वेनिला php में करेगा।

आशा इस मदद करता है कुछ निर्णय निर्माताओं ;-)

संबंधित मुद्दे