Advertisement
  1. Code
  2. Laravel 5

कैसे एक Laravel हेल्पर बनाएँ

by
Read Time:11 minsLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

शुरूआत करने के लिए, मैं Laravel आधिकारिक साइट से helpers के बारे में बात करूंगा।

Laravel में विभिन्न ग्लोबल "helper" PHP फ़ंक्शन शामिल हैं। इनमें से कई फ़ंक्शंस फ़्रेमवर्क से ही उपयोग किये जाती हैं; हालांकि, यदि आप उन्हें सुविधाजनक पाते हैं, तो आप अपने स्वयं के अनुप्रयोगों में उनका उपयोग करने के लिए स्वतंत्र हैं।

तो, मूल रूप से, Laravel में हेल्पर बिल्ट-इन फंक्शन्स हैं जिन्हे आप अपनी एप्लीकेशन में कहीं से भी कॉल कर सकते हैं। यदि वे कोर फ्रेमवर्क द्वारा प्रदान नहीं किए जाएं, तो आप शायद स्वयं की helper classes को विकसित कर सकते हैं।

हालांकि कोर पहले से ही विभिन्न प्रकार के helpers को उपलब्ध कराता है, वहां हमेशा एक मौका है कि आपको अपने helper की जरूरत पड़ेगी और आप इसे विकसित करना चाहते हैं ताकि आपको यहां और वहां एक ही कोड को दोहराना नहीं पड़े, इस प्रकार बेहतर रखरखाव लागू किया जा सके। आप सीखेंगे कि इस ट्यूटोरियल में एक कस्टम Laravel helper कैसे बनाया जाए।

Laravel में Helpers

जैसा कि हमने पहले ही चर्चा की, Laravel फ्रेमवर्क के मुख्य भाग में बहुत सारे helpers उपलब्ध हैं। वे प्रदान की जाने वाली कार्यक्षमता के आधार पर समूहीकृत (grouped) किये जाता है। यहां helper समूहों की एक सूची है

Arrays

इस समूह के helpers array एलिमेंट्स को मैनिपुलेट करने के लिए कार्यक्षमता प्रदान करते हैं। अधिक बार नहीं, आप स्थिति में हैं जहां आप array एलिमेंट्स पर अलग-अलग ऑपरेशन करना चाहते हैं। तो यह वह जगह है जहां आपको पहले देखना चाहिए कि आप जो खोज रहे हैं वह पहले से मौजूद है या नहीं।

Paths

मुझे इस श्रेणी में helpers बहुत उपयोगी लगते हैं। वे अलग-अलग डायरेक्टरी के path जैसे app, storage, config, और इसी के जैसे दूसरे को return करते हैं। मुझे यकीन है कि आप पहले से ही अपने Laravel एप्लीकेशन में इन helpers का उपयोग कर रहे हैं।

Strings

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

URLs

आप इस श्रेणी में बहुत कम पाएंगे, लेकिन उनका उपयोग पूरे एप्लिकेशन में किया जाता है। वे route, asset, और form action URL उत्पन्न करने के लिए उपयोग किए जाते हैं।

Miscellaneous

इस श्रेणी में helpers शामिल हैं जो logging से debugging और कई तरह के कार्यों को प्रदान करते हैं।

Laravel helpers के पूरे रिफरेन्स के लिए, आधिकारिक डॉक्यूमेंटेशन की तुलना में कोई बेहतर स्थान नहीं है।

अपना पहला कस्टम Helper बनाएं

अब आपको Laravel helpers के बारे में एक बुनियादी समझ है और वे किसलिए उपयोग किये जाते हैं। इस खंड में, मैं आगे बढ़ता हूं और प्रदर्शित करता हूं कि आप अपने खुद के कस्टम helper कैसे बना सकते हैं जो कि आपके Laravel एप्लीकेशन में ग्लोबली इस्तेमाल किया जा सकता है।

चीजों को सरल और समझने में आसान रखने के लिए, यह एक बहुत ही बुनियादी helper होगा जो एक userid लेता है और रिस्पांस के रूप में username return करता है। बेशक, यह फैंसी नहीं लगता है, लेकिन मेरा मानना है कि यह कांसेप्ट को प्रदर्शित करने के लिए पर्याप्त है, और आप हमेशा अपनी जटिल आवश्यकताओं को पूरा करने के लिए इसे एक्सटेंड कर सकते हैं।

मैं मानता हूँ कि आपके डेटाबेस में आपके पास एक users table है और इसमें कम से कम दो फ़ील्ड-userid और username हैं।

एक Larvel Helper के स्केलेटन

इससे पहले कि हम आगे बढ़ें और वास्तव में फाइल बनाते हैं, हम उन फाइलों पर जल्दी से एक नजर डालते हैं, जो हम बाकी आर्टिकल में बना रहे हैं।

  • app/Helpers/Envato/User.php: यह हमारी helper फाइल है जो हमारे helper का लॉजिक होल्ड करती है।
  • app/Providers/EnvatoServiceProvider.php: यह एक कस्टम service provider फाइल है जो हमारी कस्टम helper फाइल को लोड करती है।
  • Config/app.php: इस फाइल में, हम अपने कस्टम service provider को घोषित करेंगे, और यह हमारे helper को एक उपनाम को डिफाइन करने में भी मदद करता है ताकि हमें हमारे helper के पूर्णतया योग्य class के नाम का उपयोग न करें।
  • routes/web.php: एक सुंदर स्टैण्डर्ड लैरवेल रूट फ़ाइल जहां हम वास्तव में हमारे helper का परीक्षण करेंगे।

Helper फ़ाइलें बनाएं

यद्यपि आप अपने एप्लीकेशन में कहीं भी अपनी helper फ़ाइलों को रख सकते हैं, अधिक सहज और मानक तरीके से पता चलता है कि इसे आपके app डायरेक्टरी के अंतर्गत जाना चाहिए।

तो आगे बढ़ो और app के अंदर एक Helpers/Envato डायरेक्टरी बनाएं और निम्न content के साथ User.php फ़ाइल बनाएं। बेशक, आप इसे सीधे app या app/Helpers डायरेक्टरी के अंदर रख सकते हैं, लेकिन इस अतिरिक्त लेवल को प्रदान करने से हमें हमारे helpers को अच्छी स्थिति में व्यवस्थित करने की सुविधा मिलती है, विशेष रूप से जब आपके पास ये बहुत सारे हैं।

फ़ाइल एक स्टैण्डर्ड नेमस्पेस की डिक्लेरेशन से शुरू होती है:

हमारे कस्टम helper का उद्देश्य एक userid के आधार पर username प्राप्त करना है। इसलिए, हमें डेटाबेस से इंटरैक्ट करने की आवश्यकता है, और इससे हमें DB Facade को शामिल करने के लिए बाध्य किया जा सकता है।

उन लोगों के लिए जो Laravel Facades से परिचित नहीं हैं, यह service कंटेनर में ऑब्जेक्ट तक पहुंचने का एक और सुविधाजनक तरीका है। वैकल्पिक रूप से, आप dependency injection का इस्तेमाल कर सकते थे।

आगे बढ़कर, हमारे helper की ठोस इम्प्लीमेंटेशन आती है। जैसा कि आप देख सकते हैं, एक static method है जो userid के आधार पर username को रिट्रीव करने के लॉजिक को परिभाषित करता है।

$user ऑब्जेक्ट मैचिंग userid के साथ डेटाबेस रिकॉर्ड रखता है अंत में, method फॉलोविंग स्टेटमेंट में एक response के रूप में username return करता है।

हो गया जहाँ तक हमारी helper फ़ाइल का संबंध है।

अब हमने हमारी सहायक फाइल बना ली है, लेकिन सवाल यह है कि आप इसका उपयोग कैसे करेंगे? दो जल्द समाधान मेरे मन में आते हैं:

  • composer.json में आप हमारी helper फाइलनाम को शामिल कर सकते हैं, ताकि यह auto-loaded हो जाए। फिर, आप सीधे हमारे helper class के static method को कॉल कर सकते हैं।
  • आप आगे जा सकते हैं और एक Laravel सर्विस प्रोवाइडर बना सकते हैं जो आपको अपनी कस्टम helper फाइल को रजिस्टर करने की अनुमति देता है जिससे कि Laravel फ्रेमवर्क अन्य dependencies के साथ लोड कर सके। उस सर्विस प्रोवाइडर को Laravel कॉन्फ़िगरेशन में रजिस्टर करें और अपने helper का उपयोग करने के लिए एक alias बनाएं।

बेशक, पहला एक बहुत तेज और लागू करने में आसान है, और आप ऐसा करने के लिए परीक्षा ले सकते हैं, लेकिन मैं इसके बाद के एक को सुझाव देना चाहूंगा क्योंकि यह artisian की तरह से अधिक दिखता है और अधिक maintainable है

कमांड लाइन पर जाएं और एक नया service provider बनाने के लिए अपनी एप्लिकेशन रूट में निम्न कमांड चलाएं।

आपको उस मैसेज को देखना चाहिए जो यह पुष्टि करता है कि यह app/Providers डायरेक्टरी के तहत सफलतापूर्वक बनाया गया है।

उस फ़ाइल को खोलें और आपको पहले से ही दो methods दिखेंगे। इस आर्टिकल के कॉन्टेक्स्ट में महत्वपूर्ण register मेथड है। हां, फिलहाल यह खाली है, तो चलो कुछ स्टफ को इसे अधिक उपयोगी बनाने के लिए फ़ीड करें।

Register method आपकी dependencies को रजिस्टर करने के लिए उपयोग किया जाता है, और हमने इसे ठीक किया है। हमने हमारे कस्टम helper फाइल को शामिल किया है।

यहां बताया गया है कि app/Providers/EnvatoServiceProvider.php फ़ाइल को संशोधनों के बाद कैसी दिखेंगी।

तो यह सब बहुत अच्छा है अब तक। मेज पर हमारे कस्टम helper और service provider हैं।

इसके बाद, हमें Laravel को हमारे service provider के बारे में सूचित करना होगा ताकि वह bootstrapping के दौरान इसे लोड कर सके। चलो config/app.php खोलें और अंत में providers के array में निम्नलिखित एंट्री जोड़ें।

सुविधाजनक तरीके से हमारे helper का उपयोग करने के लिए, हम एक alias भी बना सकते हैं। तो आइए कि एक ही फाइल में अंत में aliases array में निम्न एंट्री जोड़कर ऐसा करें।

इस एंट्री को परिभाषित करके, हम EnvatoUser keyword का उपयोग करके अपने helper को कॉल कर सकते हैं। बहुत सुविधाजनक है, है ना? आपके रिफरेन्स के लिए, यहां संपूर्ण config/app.php फ़ाइल है।

हम बस पहुँच गए! हमने यहां आने के लिए सभी कड़ी मेहनत की है, और अब हम अपने कस्टम helper का लाभ उठा सकते हैं।

Action में आपका पहला कस्टम Helper

फिर से, चीजों को सरल और सीधा रखने के लिए, हम मूल Laravel route को परिभाषित करेंगे और वहां से हमारे helper को कॉल करेंगे!

आगे बढ़ो और निम्न कंटेंट्स के साथ एक routes/web.php फ़ाइल बनाएं।

क्या किसी भी स्पष्टीकरण की आवश्यकता है? हमने सिर्फ कस्टम helper के shorthand EnvatoUser::get_username को कॉल किया है, और इसे username return करना चाहिए।

बेशक, आप एप्लीकेशन में कहीं से भी हमारे helper को कॉल कर सकते हैं, यह एक controller या view हो सकता है।

तो आज के लिए हमारी कहानी समाप्त होती है।

निष्कर्ष

Laravel में Helpers वास्तव में एक शक्तिशाली फीचर हैं, और मुझे विश्वास है कि एक डेवलपर के रूप में आप इसे एक्सटेंड करना पसंद करेंगे। और वह आज का विषय था- हमने Laravel helper फ़ाइल संरचना को मूलभूतताओं के माध्यम से जाना और एक उपयोगी कस्टम helper बनाया।

मुझे आशा है कि आपने लेख का आनंद उठाया और यह आपको दिन-प्रतिदिन Laravel एप्लिकेशन के विकास में अपने स्वयं के कस्टम helpers को बनाने में मदद करेगा।

अपनी टिप्पणी और प्रश्नों को नीचे फ़ीड में छोड़ने में संकोच न करें। मैं अपने Twitter पर टिप्पणियों को भी लेता हूं और जैसे ही मैं कर सकता हूं उन्हें जवाब देता हूं!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.