"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > FetchPHP: जावास्क्रिप्ट के फ़ेच और ट्रू Async को PHP में लाने के लिए एक अपडेट (अब सुपरपावर के साथ!)

FetchPHP: जावास्क्रिप्ट के फ़ेच और ट्रू Async को PHP में लाने के लिए एक अपडेट (अब सुपरपावर के साथ!)

2024-11-04 को प्रकाशित
ब्राउज़ करें:488

FetchPHP : An Update To Bring Javascript

अरे, PHP उत्साही! ? उस समय को याद करें जब आप देर रात तक कोडिंग कर रहे थे, PHP में HTTP अनुरोधों से जूझ रहे थे, और सोचा, "काश यह जावास्क्रिप्ट लाने जितना आसान होता"? ठीक है, अपनी कॉफी लीजिए और कुछ रोमांचक समाचारों के लिए तैयार हो जाइए, क्योंकि FetchPHP 2.0 यहाँ है, और यह आपके PHP HTTP अनुरोधों को एक अच्छी तेल वाली मशीन की तुलना में अधिक आसान बनाने वाला है!

मूल कहानी: फ़ेच से सुपरपावर्ड फ़ेच तक

यह चित्र: यह 2023 है, और मैं अपनी पसंदीदा कॉफी शॉप में बैठा हूं, एक अतिरिक्त बड़े लट्टे का आनंद ले रहा हूं... नहीं, बस मजाक कर रहा हूं। मैं वास्तव में घर पर था, घुटनों तक एल्डन रिंग सत्र में, जब अचानक, प्रेरणा मिली। "क्या होगा अगर," मैंने सोचा, "हम जावास्क्रिप्ट की सरलता को PHP दुनिया में ला सकें?" और ऐसे ही, FetchPHP का जन्म हुआ। (चिंता मत करो, मैंने पहले बॉस की लड़ाई ख़त्म की।)

लेकिन यहां प्रेरणा के बारे में बात है - यह संस्करण 1.0 पर नहीं रुकती है। जैसे ही मैंने डेवलपर्स को FetchPHP को अपनाते हुए देखा, मुझे एहसास हुआ कि हम इस दायरे को और भी आगे बढ़ा सकते हैं। इसलिए, मैंने खुद को अपनी कोडिंग गुफा में बंद कर लिया (ठीक है, यह सिर्फ मेरा गृह कार्यालय था, लेकिन कुछ समय बाद यह एक गुफा जैसा महसूस हुआ), ऊर्जा पेय की अस्वास्थ्यकर मात्रा से प्रेरित होकर, और FetchPHP 2.0 के साथ उभरा।

FetchPHP 2.0 में नया क्या है?

अपनी कमर कस लें, क्योंकि यह अपडेट स्विस आर्मी चाकू से भी अधिक सुविधाओं से भरपूर है! यहाँ संस्करण 2.0 में क्या पक रहा है:

  1. सच्ची अतुल्यकालिक महाशक्तियाँ: याद रखें जब PHP में async को फ्लिप-फ्लॉप में मैराथन दौड़ने की कोशिश करने जैसा महसूस हुआ था? वे दिन चले गए! FetchPHP 2.0 सच्ची गैर-अवरुद्ध संगामिति प्रदान करने के लिए PHP फ़ाइबर (हमारे सहोदर पैकेज, मैट्रिक्स के लिए धन्यवाद) का लाभ उठाता है। यह आपके कोड को रॉकेट बूट की एक जोड़ी देने जैसा है! मैट्रिक्स, एक पैकेज जिसे मैंने स्वयं बनाया है, PHP फ़ाइबर का उपयोग करके एसिंक कार्य प्रबंधन को सरल बनाता है। मैट्रिक्स के साथ, FetchPHP अतुल्यकालिक कार्यों को पहले की तरह चला सकता है।

  2. जावास्क्रिप्ट डेवलपर्स, बिल्कुल घर जैसा महसूस करें: हमने एक एसिंक()/प्रतीक्षा जैसा सिंटैक्स पेश किया है जो जावास्क्रिप्ट डेवलपर्स को ऐसा महसूस कराएगा जैसे उन्होंने कभी घर नहीं छोड़ा। यह इतना परिचित है, आप भूल सकते हैं कि आप PHP लिख रहे हैं!

  3. जीत के लिए धाराप्रवाह एपीआई: बिल्डिंग अनुरोध अब आपके पसंदीदा बरिस्ता की लट्टे कला की तुलना में आसान है। लारवेल के HTTP क्लाइंट से प्रेरित, हमारी नई धाराप्रवाह एपीआई के साथ श्रृंखला विधियां। यह बहुत सुंदर है, व्यावहारिक रूप से यह स्वयं ही लिखता है!

  4. स्टेरॉयड पर त्रुटि प्रबंधन: हमारे नए अनुकूलन योग्य एररहैंडलर के साथ, त्रुटियों को प्रबंधित करना अब कोई बुरा सपना नहीं है। कार्यों को तुरंत रोकें, फिर से शुरू करें, पुनः प्रयास करें या रद्द करें। यह आपके HTTP अनुरोधों के लिए एक टाइम मशीन रखने जैसा है!

  5. Guzzle Who?: जबकि हम अभी भी Guzzle को धन्यवाद देते हैं (यह हुड के नीचे हमारे समकालिक अनुरोधों को शक्ति प्रदान कर रहा है), FetchPHP 2.0 चीजों को एक बिल्कुल नए स्तर पर ले जाता है। यह ऐसा है जैसे हम गज़ल को जिम ले गए, उसे पालक खिलाया और उसे नई तरकीबें सिखाईं!

लेकिन रुकिए, और भी बहुत कुछ है

याद रखें कि कैसे संस्करण 1.0 में, हम सभी सरल अनुरोध करने को लेकर उत्साहित थे? ठीक है, अपने कीबोर्ड पर पकड़ बनाए रखें, क्योंकि FetchPHP 2.0 एक पेशेवर की तरह जटिल परिदृश्यों को संभालने के लिए तैयार है। आइए कुछ उदाहरण देखें जिससे आप अपने सभी HTTP तर्क को फिर से लिखना चाहेंगे (चिंता न करें, यदि आप ऐसा करते हैं तो हम निर्णय नहीं लेंगे):

// Async request with all the bells and whistles
async(fn () => fetch()
    ->baseUri('https://api.coolstartup.com')
    ->withHeaders(['X-API-Key' => 'supersecret'])
    ->withBody(json_encode(['feature' => 'awesome']))
    ->withProxy('tcp://localhost:8080')
    ->timeout(5)
    ->retry(3, 1000)
    ->post('/unicorns'))
    ->then(fn ($response) => processUnicornData($response->json()))
    ->catch(fn ($e) => logUnicornError($e));

उस सुंदरता को देखो! यह एसिंक्रोनस रहते हुए और भव्य दिखते हुए प्रॉक्सी, रिट्रीट, टाइमआउट और बहुत कुछ को संभाल रहा है।

FetchPHP बनाम Guzzle: वह प्रदर्शन जिसका आप इंतजार कर रहे थे

अब, मुझे पता है कि आप क्या सोच रहे हैं। "लेकिन मैं वर्षों से गज़ल का उपयोग कर रहा हूं! मुझे इसे क्यों बदलना चाहिए?" ठीक है, कमर कस लें, क्योंकि हम यह जानने वाले हैं कि क्यों FetchPHP 2.0 PHP HTTP क्लाइंट का नया हेवीवेट चैंपियन है।

1. सच्ची अतुल्यकालिक शक्तियाँ

  • Guzzle: एसिंक संचालन के लिए वादों का उपयोग करता है। यह एक वाहक कबूतर को भेजने और यह उम्मीद करने जैसा है कि वह वापस आएगा।
  • FetchPHP: वास्तविक गैर-अवरुद्ध संगामिति के लिए PHP फ़ाइबर का लाभ उठाता है। यह मेरे मैट्रिक्स पैकेज की शक्ति के लिए धन्यवाद, आपके पास सुपरसोनिक जेट की एक टीम होने जैसा है!

2. सिंटेक्स जो घर जैसा लगता है

  • गुज़ल: पारंपरिक PHP सिंटैक्स। यह परिचित है, लेकिन क्रियात्मक हो सकता है।
  • FetchPHP: जावास्क्रिप्ट जैसा एसिंक/वेट सिंटैक्स। यह इतना सहज है, आप सोचेंगे कि आप फ्रंटएंड कोड लिख रहे हैं (लेकिन PHP की पूरी शक्ति के साथ)।

3. धाराप्रवाह एपीआई

  • Guzzle: एक सभ्य एपीआई प्रदान करता है, लेकिन जटिल संचालन के लिए थोड़ा कठोर महसूस कर सकता है।
  • FetchPHP: श्रृंखलाबद्ध तरीके जो सबसे जटिल अनुरोधों को भी एक सुंदर कविता की तरह पढ़ाते हैं।

4. त्रुटि प्रबंधन और कार्य प्रबंधन

  • गुज़ल: बुनियादी वादा-आधारित त्रुटि प्रबंधन।
  • FetchPHP: अनुकूलन योग्य ErrorHandler के साथ उन्नत त्रुटि प्रबंधन। कार्यों को तुरंत रोकें, फिर से शुरू करें, पुनः प्रयास करें या रद्द करें। यह आपके HTTP अनुरोधों के लिए एक जादू की छड़ी की तरह है।

5. सीखने की अवस्था

  • गुज़ल: तीव्र सीखने की अवस्था, विशेष रूप से जटिल एसिंक संचालन के लिए।
  • FetchPHP: यदि आप जावास्क्रिप्ट के फ़ेच को जानते हैं, तो आप पहले से ही आधे रास्ते पर हैं। यदि आप ऐसा नहीं करते हैं, तो आप इसे "एसिंक्रोनस" कहने की तुलना में अधिक तेजी से पकड़ लेंगे।

6. प्रदर्शन

  • गुज़ल: सिंक्रोनस अनुरोधों के लिए अच्छा प्रदर्शन, एसिंक्स के लिए अच्छा।
  • FetchPHP: सिंक्रोनस और एसिंक्रोनस दोनों अनुरोधों के लिए अनुकूलित। यह साइकिल से रॉकेट जहाज में अपग्रेड होने जैसा है।

बिंदु को घर तक पहुंचाने के लिए यहां एक त्वरित तुलना दी गई है:

// Guzzle
$promise = $client->requestAsync('GET', 'http://httpbin.org/get');
$promise->then(
    function ($response) {
        echo 'I completed! ' . $response->getBody();
    },
    function ($exception) {
        echo 'I failed! ' . $exception->getMessage();
    }
);

// FetchPHP

// using async/await syntax
async(fn () => fetch('http://httpbin.org/get'))
    ->then(fn ($response) => echo 'I completed! ' . $response->body())
    ->catch(fn ($e) => echo 'I failed! ' . $e->getMessage());

// or directly using the ClientHandler class
use Fetch\Http\ClientHandler;

(new ClientHandler())
    ->async()
    ->get('http://httpbin.org/get');

अंतर देखें? FetchPHP जटिल अनुप्रयोगों के लिए आवश्यक शक्ति और लचीलेपन को बनाए रखते हुए आधुनिक जावास्क्रिप्ट की सुंदरता को PHP दुनिया में लाता है।

क्यों FetchPHP 2.0 आपको हर चीज़ पर सवाल उठाने पर मजबूर कर देगा

कल्पना करें कि आप एक कंडक्टर हैं, और आपके HTTP अनुरोध आपका ऑर्केस्ट्रा हैं। गज़ल के साथ, आप बहुत अच्छा काम कर रहे हैं, लेकिन आप एक समय में एक वाद्ययंत्र बजाने तक ही सीमित हैं। FetchPHP 2.0? यह आपको एक उस्ताद में बदल देता है, अतुल्यकालिक अनुरोधों की एक पूरी सिम्फनी का संचालन करता है, जिसमें हर एक पूर्ण सामंजस्य में बजता है।

यही कारण है कि FetchPHP 2.0 वह HTTP क्लाइंट है जिसके बारे में आप कभी नहीं जानते थे कि आपको इसकी आवश्यकता है:

  1. True Async: हम केवल वादों के साथ दिखावा नहीं कर रहे हैं। यह वास्तविक डील है, जो PHP फ़ाइबर और मैट्रिक्स द्वारा संचालित है।
  2. परिचित सिंटैक्स: जावास्क्रिप्ट डेवलपर्स बिल्कुल घर जैसा महसूस करेंगे, और PHP डेवलपर्स आश्चर्यचकित होंगे कि यह हमेशा इतना आसान क्यों नहीं था।
  3. लचीली त्रुटि प्रबंधन: तुरंत अनुरोधों को पुनः प्रयास करें, रोकें, फिर से शुरू करें या रद्द करें। यह आपके HTTP अनुरोधों के लिए रिमोट कंट्रोल रखने जैसा है।
  4. शक्तिशाली, फिर भी सरल: जटिल संचालन अब पिज्जा ऑर्डर करने जितना आसान है (आपके स्थानीय पिज़्ज़ेरिया के आधार पर शायद और भी आसान)।

भविष्य उज्ज्वल है (और अतुल्यकालिक)

FetchPHP 2.0 सिर्फ एक अपडेट नहीं है; यह एक क्रांति है कि हम PHP में HTTP अनुरोधों को कैसे संभालते हैं। चाहे आप एक छोटा एपीआई बना रहे हों या एक बड़े पैमाने का सिस्टम, जिसे हजारों समवर्ती अनुरोधों को संभालने की आवश्यकता हो, FetchPHP 2.0 को आपका समर्थन प्राप्त है।

तो, क्या आप एसिंक क्रांति में शामिल होने के लिए तैयार हैं? हमारे GitHub रिपॉजिटरी पर जाएं, हमें एक स्टार दें (हम उन्हें पसंद करते हैं!), और अपने PHP अनुप्रयोगों को तेज़, अधिक कुशल बनाना शुरू करें, और, मैं साहसपूर्वक कह ​​सकता हूं, उनके साथ काम करने में अधिक मज़ा आएगा!

याद रखें, FetchPHP 2.0 की दुनिया में, एकमात्र सीमा आपकी कल्पना है (और शायद आपके सर्वर के संसाधन, लेकिन यह एक और दिन के लिए समस्या है)।

हैप्पी कोडिंग, और आपके अनुरोध हमेशा अतुल्यकालिक रहें! ?✨


पी.एस. यदि आपको कोई समस्या आती है या FetchPHP को और भी शानदार बनाने के लिए आपके पास कोई विचार है, तो किसी समस्या को खोलने या पुल अनुरोध सबमिट करने में संकोच न करें। आइए PHP की दुनिया को एक बेहतर जगह बनाएं, एक समय में एक अनुरोध!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/thavarshan/fetchphp-20-an-update-to-bring-javascripts-fetch-true-async-to-php-now-with-superpowers-3g1m?1 कोई भी उल्लंघन, हटाने के लिए कृपया [email protected] से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3