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

लारवेल में मिडलवेयर में महारत हासिल करना: एक गहन मार्गदर्शिका

2024-07-31 को प्रकाशित
ब्राउज़ करें:993

Mastering Middleware in Laravel: An In-Depth Guide

जैसे ही मैंने वेब विकास की भूलभुलैया को नेविगेट किया, एक सुविधा ने लगातार मेरा रास्ता रोशन किया: लारवेल का मिडलवेयर सिस्टम। मिडलवेयर केवल अनुरोधों को फ़िल्टर नहीं करता है; यह सुरक्षा, प्रदर्शन और निर्बाध उपयोगकर्ता अनुभव सुनिश्चित करते हुए अनुप्रयोगों को बदल देता है। चाहे आप प्रमाणीकरण, लॉगिंग, या क्रॉस-कटिंग चिंताओं पर काम कर रहे हों, मिडलवेयर आपको इसे सुरुचिपूर्ण ढंग से प्रबंधित करने में मदद कर सकता है।

मिडलवेयर को समझना

मिडिलवेयर एक अनुरोध और एक प्रतिक्रिया के बीच एक पुल के रूप में कार्य करता है, जो एक वेब एप्लिकेशन में अनुरोध-प्रतिक्रिया जीवनचक्र में महत्वपूर्ण भूमिका निभाता है। सबसे पहले, आइए जानें कि अनुरोध और प्रतिक्रिया क्या हैं। क्लाइंट (आमतौर पर उपयोगकर्ता का ब्राउज़र) द्वारा सर्वर से वेब पेज, डेटा या अन्य सेवाओं जैसे विशिष्ट संसाधनों के लिए अनुरोध किया जाता है।

इस अनुरोध में HTTP विधियों (जीईटी, पोस्ट, ...), हेडर और संभावित रूप से डेटा युक्त निकाय सहित आवश्यक जानकारी शामिल है। एक बार जब सर्वर को यह अनुरोध प्राप्त हो जाता है, तो यह आवश्यक जानकारी संसाधित करता है और एक प्रतिक्रिया उत्पन्न करता है।

प्रतिक्रिया क्लाइंट के अनुरोध पर सर्वर का उत्तर है। इसमें अनुरोध की स्थिति (उदाहरण के लिए, सफलता, विफलता), हेडर और एक निकाय शामिल होता है जिसमें अक्सर HTML, JSON, या अन्य डेटा प्रारूप शामिल होते हैं जिनका उपयोग क्लाइंट वेब पेज को प्रस्तुत करने या आगे की कार्रवाइयों को निष्पादित करने के लिए करता है।

मिडिलवेयर एक मध्यस्थ के रूप में कार्य करता है जो इन अनुरोधों और प्रतिक्रियाओं का निरीक्षण, संशोधन या यहां तक ​​कि रोक भी सकता है। यह अनुरोध के मूल एप्लिकेशन लॉजिक तक पहुंचने से पहले और क्लाइंट को प्रतिक्रिया वापस भेजे जाने से पहले संचालित होता है।

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

मिडलवेयर बनाना

लारवेल में मिडलवेयर बनाना सीधा है। आप Artisan कमांड का उपयोग करके एक नया मिडलवेयर उत्पन्न कर सकते हैं।

php artisan make:middleware CheckAge

यह कमांड app/Http/Middleware डायरेक्टरी में एक नई CheckAge मिडलवेयर फ़ाइल बनाएगा। इस फ़ाइल के अंदर, आप उस तर्क को परिभाषित कर सकते हैं जिसे प्रत्येक अनुरोध के लिए निष्पादित किया जाना चाहिए।

age 



इस उदाहरण में, मिडलवेयर अनुरोध में आयु विशेषता की जांच करता है। यदि आयु 200 से कम या उसके बराबर है, तो यह उपयोगकर्ता को home मार्ग पर पुनर्निर्देशित करता है। अन्यथा, यह अनुरोध को आगे बढ़ने की अनुमति देता है।

मिडिलवेयर का पंजीकरण

एक बार जब आप अपना मिडलवेयर बना लेते हैं, तो आपको इसे कर्नेल में पंजीकृत करना होगा। कर्नेल लारवेल एप्लिकेशन का मूल है जो HTTP अनुरोध के संपूर्ण जीवनचक्र का प्रबंधन करता है। यह एक केंद्रीय केंद्र के रूप में कार्य करता है जो एप्लिकेशन के मार्गों और नियंत्रकों तक पहुंचने से पहले विभिन्न मिडलवेयर परतों के माध्यम से अनुरोधों के प्रवाह को व्यवस्थित करता है।

आप अपनी app/Http/Kernel.php फ़ाइल के अंदर मिडलवेयर को दो तरीकों से पंजीकृत कर सकते हैं:

  1. ग्लोबल मिडलवेयर: ये मिडलवेयर हर अनुरोध के दौरान चलते हैं
    आपकी एप्लिकेशन।

  2. रूट मिडलवेयर: इन मिडलवेयर को विशिष्ट
    को सौंपा जा सकता है मार्ग.

हमारे चेकएज मिडलवेयर को रूट मिडलवेयर के रूप में पंजीकृत करने के लिए, इसे कर्नेल में $routeMiddleware ऐरे में जोड़ें:

protected $routeMiddleware = [
    // Other middleware
    'checkAge' => \App\Http\Middleware\CheckAge::class,
];

अब, आप इस मिडलवेयर को अपने रूट या रूट समूहों पर लागू कर सकते हैं:

Route::get('admin', function () {
    // Only accessible if age > 200
})->middleware('checkAge');

उन्नत मिडलवेयर तकनीक

लारवेल में मिडलवेयर साधारण जांच तक सीमित नहीं है। मिडलवेयर से अधिकतम लाभ उठाने के लिए यहां कुछ उन्नत तकनीकें दी गई हैं:

  1. पैरामीटराइज़िंग मिडलवेयर

मिडिलवेयर अतिरिक्त पैरामीटर स्वीकार कर सकता है। यह उन परिदृश्यों के लिए उपयोगी है जहां मिडलवेयर का व्यवहार मापदंडों के आधार पर बदल सकता है।

public function handle($request, Closure $next, $role)
{
    if (! $request->user()->hasRole($role)) {
        // Redirect or abort
    }

    return $next($request);
}
  1. ग्रुपिंग मिडलवेयर

आप एक ही कुंजी के तहत कई मिडलवेयर को समूहित कर सकते हैं, जो कई मार्गों पर मिडलवेयर के एक सेट को लागू करने में मदद करता है।

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // more middleware
    ],
];

मार्गों पर मिडलवेयर समूह लागू करना:

Route::middleware(['web'])->group(function () {
    Route::get('/', function () {
        // Uses 'web' middleware group
    });

    Route::get('dashboard', function () {
        // Uses 'web' middleware group
    });
});
  1. टर्मिनेटिंग मिडलवेयर

मिडिलवेयर एक terminet विधि को परिभाषित कर सकता है जिसे ब्राउज़र पर प्रतिक्रिया भेजे जाने के बाद कॉल किया जाएगा। यह लॉगिंग या एनालिटिक्स जैसे कार्यों के लिए विशेष रूप से उपयोगी है।

public function terminate($request, $response)
{
    // Log request and response
}

निष्कर्ष

मिडिलवेयर में महारत हासिल करके, आप ऐसे एप्लिकेशन बना सकते हैं जो न केवल सुरक्षित और प्रदर्शन योग्य हैं बल्कि रखरखाव योग्य और स्केलेबल भी हैं। चाहे आप प्रमाणीकरण संभाल रहे हों, लॉगिंग कर रहे हों, या यहां तक ​​कि कस्टम पैरामीटर के साथ अपने एप्लिकेशन के व्यवहार को ठीक कर रहे हों, मिडलवेयर एक स्वच्छ और सुरुचिपूर्ण समाधान प्रदान करता है।

अपने लारवेल प्रोजेक्ट्स में मिडलवेयर की शक्ति को अपनाएं और देखें कि यह आपके क्रॉस-कटिंग चिंताओं को प्रबंधित करने के तरीके को कैसे बदल देता है। हैप्पी कोडिंग!

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/cyrilmuchemi/mastering-middleware-in-laravel-an-in-depth-guide-4bde?1 यदि कोई उल्लंघन है, तो कृपया हटाने के लिए स्टडी_गोलंग@163.com पर संपर्क करें। यह
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3