ब्लॉग

Laravel

Laravel से वेब ऐप्लिकेशन बनाना: रूटिंग, Eloquent मॉडल, ऑथेंटिकेशन, क्यू और डिप्लॉयमेंट, ऐसे व्यावहारिक उदाहरणों के साथ जिन्हें आप असली प्रोजेक्ट में इस्तेमाल कर सकें।

यहां अभी तक कोई कहानी नहीं है!

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

इस विषय से जुड़े सवाल

इस विषय के बारे में पाठकों के सबसे ज़्यादा पूछे जाने वाले सवालों के तेज़ और साफ़ जवाब।

Laravel क्या है?

Laravel वेब ऐप्लिकेशन बनाने के लिए एक मुफ़्त और ओपन-सोर्स PHP फ़्रेमवर्क है। Laravel डेवलपर्स को रूटिंग, डेटाबेस, लॉगिन, ईमेल, क्यू और टेस्टिंग के लिए तैयार हिस्से देता है, जिससे उन्हें दोहराया हुआ कोड कम लिखना पड़ता है। यह फ़्रेमवर्क model, view, controller पैटर्न पर चलता है और इसकी कम्युनिटी बहुत बड़ी है।

Laravel किस काम में इस्तेमाल होता है?

Laravel से मैनेजमेंट सिस्टम, कस्टमर पोर्टल, ऑनलाइन स्टोर, बुकिंग प्लेटफ़ॉर्म और मोबाइल ऐप के लिए API जैसे वेब ऐप्लिकेशन बनाए जाते हैं। Laravel ऐसे हर प्रोजेक्ट के लिए ठीक है जिसमें यूज़र, डेटाबेस और बिज़नेस नियम हों। कई कंपनियाँ बड़े निजी सिस्टम Laravel पर चलाती हैं, क्योंकि यह फ़्रेमवर्क स्थिर है और आसानी से बढ़ाया जा सकता है।

क्या Laravel शुरुआती लोगों के लिए अच्छा है?

हाँ, Laravel उन शुरुआती लोगों के लिए अच्छा है जो बुनियादी PHP जानते हैं, क्योंकि इसका कोड पढ़ने में आसान है और आधिकारिक डॉक्यूमेंटेशन साफ़ है। Laravel की बड़ी कम्युनिटी, कई ट्यूटोरियल और ऐसे स्टार्टर किट भी हैं जो आपके लिए लॉगिन पेज तैयार कर देते हैं। पहले सादी PHP सीखने से फ़्रेमवर्क समझना बहुत आसान हो जाता है।

अपने कंप्यूटर पर Laravel कैसे इंस्टॉल करें?

Laravel इंस्टॉल करने के लिए पहले PHP और Composer इंस्टॉल करें, फिर composer create-project laravel/laravel के बाद अपने प्रोजेक्ट का नाम लिखकर चलाएँ। laravel new से चलने वाला Laravel इंस्टॉलर भी यही करता है और स्टार्टर किट भी देता है। इसके बाद php artisan serve एक लोकल सर्वर चालू करता है ताकि आप ब्राउज़र में ऐप खोल सकें।

Laravel के लिए कौन सा PHP वर्ज़न चाहिए?

Laravel को हाल का PHP 8 वर्ज़न चाहिए, और हर Laravel रिलीज़ बताती है कि वह सबसे कम कौन सा PHP वर्ज़न सपोर्ट करती है। नई Laravel रिलीज़ पुराने PHP वर्ज़न का सपोर्ट तब छोड़ देती हैं जब उनका सुरक्षा सपोर्ट खत्म हो जाता है। जिस Laravel वर्ज़न को इस्तेमाल करना है, उसकी अपग्रेड गाइड हमेशा जाँचें।

Laravel में रूटिंग क्या है?

Laravel में रूटिंग एक वेब पते और GET या POST जैसे HTTP मेथड को उस कोड से जोड़ती है जो उसका जवाब देता है। रूट routes/web.php जैसी फ़ाइलों में पेजों के लिए और routes/api.php में API के लिए लिखे जाते हैं। रूट एक closure या कंट्रोलर मेथड कॉल कर सकता है और लॉगिन व दूसरी जाँचों के लिए मिडलवेयर रख सकता है।

Laravel में Eloquent क्या है?

Eloquent, Laravel का ORM है, यानी वह हिस्सा जिससे आप डेटाबेस टेबल के साथ मॉडल कहलाने वाली PHP क्लास की तरह काम करते हैं। हर मॉडल एक टेबल से और हर ऑब्जेक्ट एक पंक्ति से जुड़ा होता है, इसलिए आप SQL लिखे बिना डेटा पढ़ और सेव कर सकते हैं। Eloquent वन-टू-मेनी और मेनी-टू-मेनी जैसे संबंध भी संभालता है।

Laravel में Eloquent रिलेशनशिप कैसे काम करती हैं?

Laravel में Eloquent रिलेशनशिप मॉडल पर hasMany, belongsTo और belongsToMany जैसे मेथड हैं जो बताते हैं कि दो टेबल कैसे जुड़ी हैं। एक बार तय होने के बाद आप join लिखे बिना $order->customer जैसा जुड़ा डेटा पढ़ सकते हैं। with मेथड से eager loading जुड़ी पंक्तियाँ एक बार में लोड करती है और धीमी दोहराई क्वेरी से बचाती है।

Laravel में N+1 क्वेरी समस्या क्या है?

Laravel में N+1 क्वेरी समस्या तब होती है जब कोड रिकॉर्ड की सूची लोड करता है और फिर जुड़ा डेटा लाने के लिए हर रिकॉर्ड पर एक अतिरिक्त क्वेरी चलाता है। 100 ऑर्डर वाला पेज 101 क्वेरी चला सकता है और धीमा हो जाता है। with मेथड से eager loading जुड़ी पंक्तियाँ एक क्वेरी में लाकर यह समस्या ठीक कर देती है।

Laravel में माइग्रेशन क्या होते हैं?

Laravel में माइग्रेशन PHP फ़ाइलें हैं जो कोड के ज़रिए डेटाबेस टेबल बनाती और बदलती हैं। php artisan migrate चलाने से ये लागू होते हैं, जिससे हर डेवलपर और हर सर्वर को एक जैसा डेटाबेस ढाँचा मिलता है। माइग्रेशन वर्ज़न कंट्रोल में रहते हैं, इसलिए हर टेबल बदलाव का इतिहास सुरक्षित रहता है।

Laravel में Blade क्या है?

Blade, Laravel का टेम्पलेट इंजन है जिससे लूप, शर्तों और लेआउट के सरल टैग के साथ HTML पेज लिखे जाते हैं। Blade डिफ़ॉल्ट रूप से प्रिंट की गई वैल्यू को एस्केप करता है, जो पेजों को cross-site scripting से बचाता है। टेम्पलेट सादे PHP में कंपाइल होकर कैश हो जाते हैं, इसलिए Blade हर रिक्वेस्ट पर लगभग कोई अतिरिक्त भार नहीं डालता।

Laravel में ऑथेंटिकेशन कैसे काम करता है?

Laravel में ऑथेंटिकेशन guard के ज़रिए काम करता है जो जाँचते हैं कि यूज़र कौन है, और provider के ज़रिए जो डेटाबेस से यूज़र लोड करते हैं। Laravel Breeze जैसे स्टार्टर किट तैयार लॉगिन, रजिस्ट्रेशन और पासवर्ड रीसेट पेज जोड़ते हैं। पासवर्ड bcrypt या Argon2 से हैश होते हैं, इसलिए वे कभी सादे टेक्स्ट में सेव नहीं होते।

Laravel Sanctum और Laravel Passport में क्या फ़र्क है?

Laravel Sanctum सिंगल-पेज ऐप, मोबाइल ऐप और बेसिक API के लिए सरल टोकन और कुकी लॉगिन देता है, जबकि Laravel Passport एक पूरा OAuth2 सर्वर है। ज़्यादातर प्रोजेक्ट को सिर्फ़ Sanctum चाहिए, क्योंकि यह हल्का और सेट करने में आसान है। Passport उन मामलों के लिए है जहाँ बाहरी ऐप्लिकेशन को आपके यूज़र की ओर से लॉग इन करना हो।

Laravel में मिडलवेयर क्या हैं?

Laravel में मिडलवेयर ऐसी परतें हैं जो रिक्वेस्ट के आपके कोड तक पहुँचने से पहले या रिस्पॉन्स के बाहर जाने से पहले उसे जाँचती या बदलती हैं। आम मिडलवेयर लॉगिन जाँच, CSRF सुरक्षा, रेट लिमिटिंग और भाषा सेटिंग संभालते हैं। आप मिडलवेयर को अकेले रूट, रूट के समूह या पूरे ऐप्लिकेशन से जोड़ सकते हैं।

Laravel में क्यू कैसे काम करती हैं?

Laravel में क्यू ईमेल भेजने या रिपोर्ट बनाने जैसे धीमे कामों को वेब रिक्वेस्ट से निकालकर बैकग्राउंड जॉब में ले जाती हैं। जॉब Redis या डेटाबेस जैसे क्यू ड्राइवर में डाला जाता है, और php artisan queue:work से चालू हुआ वर्कर उसे चलाता है। यूज़र को तेज़ जवाब मिलता है जबकि भारी काम बैकग्राउंड में पूरा होता है।

Laravel ऐप्लिकेशन में क्यू कब इस्तेमाल करनी चाहिए?

Laravel ऐप्लिकेशन में क्यू तब इस्तेमाल करनी चाहिए जब कोई काम एक पल से ज़्यादा ले या किसी बाहरी सर्विस से बात करे, जैसे ईमेल, फ़ाइल प्रोसेसिंग या पेमेंट वेबहुक। क्यू पेजों को तेज़ रखती हैं और फ़ेल हुए जॉब को अपने आप दोबारा चलने देती हैं। Laravel Horizon, Redis क्यू पर नज़र रखने के लिए डैशबोर्ड देता है।

Laravel में टास्क शेड्यूल कैसे करें?

Laravel में टास्क शेड्यूल करने के लिए उन्हें शेड्यूलर में daily या everyFiveMinutes जैसे मेथड से तय करें, फिर सर्वर पर एक cron एंट्री से हर मिनट php artisan schedule:run चलाएँ। इसके बाद शेड्यूलर ख़ुद तय करता है कि कौन से टास्क का समय आ गया है। इससे सारे समय वाले जॉब कई अलग cron लाइनों की बजाय कोड में रहते हैं।

Laravel में फ़ॉर्म डेटा कैसे वैलिडेट करें?

Laravel में फ़ॉर्म डेटा रिक्वेस्ट पर validate मेथड से या नियम रखने वाली Form Request क्लास से वैलिडेट करें। required, email, max और unique जैसे नियम आपके कोड के इस्तेमाल से पहले हर फ़ील्ड जाँचते हैं। वैलिडेशन फ़ेल होने पर Laravel यूज़र को एरर मैसेज और पुराने इनपुट के साथ वापस भेज देता है।

Laravel आम वेब हमलों से कैसे बचाता है?

Laravel फ़ॉर्म पर CSRF टोकन, Blade में एस्केप किया आउटपुट, डेटाबेस क्वेरी में पैरामीटर बाइंडिंग और हैश किए पासवर्ड से आम वेब हमलों से बचाता है। ये डिफ़ॉल्ट सामान्य इस्तेमाल में cross-site request forgery, cross-site scripting और SQL injection को रोकते हैं। फिर भी डेवलपर्स को इनपुट वैलिडेट करना, परमिशन जाँचना और फ़्रेमवर्क अपडेट रखना होता है।

Laravel ऐप्लिकेशन को सर्वर पर डिप्लॉय कैसे करें?

Laravel ऐप्लिकेशन डिप्लॉय करने के लिए कोड सर्वर पर पुल करें, dev पैकेज के बिना composer install चलाएँ, .env फ़ाइल सेट करें और माइग्रेशन चलाएँ। फिर config, routes और views को कैश करें और वेब सर्वर को public फ़ोल्डर की ओर पॉइंट करें। कई टीमें ये कदम Git से ऑटोमेट कर देती हैं ताकि हर रिलीज़ एक जैसी हो।

Laravel ऐप्लिकेशन को कैसा सर्वर चाहिए?

Laravel ऐप्लिकेशन को PHP, Nginx या Apache जैसे वेब सर्वर, MySQL या PostgreSQL जैसे डेटाबेस और Composer वाला सर्वर चाहिए। कैश और क्यू के लिए अक्सर Redis जोड़ा जाता है, और एक प्रोसेस मैनेजर क्यू वर्कर को चालू रखता है। Linkysoft का होस्टिंग ब्रांड Hostrena, Laravel के लिए वेब ऐप होस्टिंग देता है जो सीधे Git से डिप्लॉय होती है।

Laravel ऐप्लिकेशन को तेज़ कैसे करें?

Laravel ऐप्लिकेशन को तेज़ करने के लिए config, routes और views कैश करें, रिलेशनशिप eager load करें और जिन डेटाबेस कॉलम पर सर्च होती है उन पर इंडेक्स लगाएँ। धीमे काम को क्यू में ले जाना और भारी क्वेरी के नतीजे Redis में कैश करना और मदद करता है। सर्वर पर PHP OPcache चालू करना कम मेहनत में बड़ा फ़ायदा देता है।

Laravel ऐप्लिकेशन को टेस्ट कैसे करें?

Laravel ऐप्लिकेशन को PHPUnit या Pest से टेस्ट करें, जो हर नए प्रोजेक्ट में पहले से सेट होते हैं। फ़ीचर टेस्ट आपके रूट पर नकली रिक्वेस्ट भेजकर रिस्पॉन्स और डेटाबेस जाँचते हैं, जबकि यूनिट टेस्ट अकेली क्लास जाँचते हैं। php artisan test चलाने से पूरा सूट चल जाता है।

क्या Laravel बहुत सारे यूज़र वाले बड़े ऐप्लिकेशन संभाल सकता है?

हाँ, Laravel बहुत सारे यूज़र वाले बड़े ऐप्लिकेशन संभाल सकता है, अगर वह कैशिंग, क्यू, डेटाबेस इंडेक्स और लोड बैलेंसर के पीछे एक से ज़्यादा ऐप सर्वर के साथ अच्छे सर्वरों पर चले। फ़्रेमवर्क ख़ुद शायद ही कभी सीमा बनता है, आमतौर पर धीमी क्वेरी और कैश की कमी सीमा बनती है। इसी वजह से Linkysoft कस्टम वेब ऐप्लिकेशन PHP, Laravel, MySQL और Redis से बनाता है।

Laravel वर्ज़न कितनी बार अपग्रेड करना चाहिए?

Laravel वर्ज़न कम से कम तब से पहले अपग्रेड करना चाहिए जब आपके मौजूदा वर्ज़न को सुरक्षा फ़िक्स मिलना बंद हो जाएँ। Laravel लगभग साल में एक बार बड़ा वर्ज़न जारी करता है, और हर वर्ज़न के साथ एक अपग्रेड गाइड आती है। छोटे और नियमित अपग्रेड एक साथ कई वर्ज़न छलाँगने से बहुत आसान होते हैं।