လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> get_client_version ယုတ္တိယပ်ယုတ္တိဗေဒကိုကိုင်တွယ်ရန် Middleware ကိုရေးပါ

get_client_version ယုတ္တိယပ်ယုတ္တိဗေဒကိုကိုင်တွယ်ရန် Middleware ကိုရေးပါ

gitbox 2025-05-11

PHP application များစွာတွင်အထူးသဖြင့် API interfaces များသို့မဟုတ်မိုဘိုင်းထုတ်ကုန်များနှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ client ၏ဗားရှင်းအချက်အလက်များကိုကျွန်ုပ်တို့မကြာခဏလုပ်ဆောင်ရန်လိုအပ်သည်။ ယေဘုယျအားဖြင့်တောင်းဆိုမှုခေါင်းစီးများ, URL Parameters သို့မဟုတ် Cookies မှရရှိသော client version အချက်အလက်များကိုရယူရန်နည်းလမ်းများစွာရှိသည်။ မည်သို့ပင်ဖြစ်စေ Get_Client_Version_version လုပ်ဆောင်မှု၏ယုတ္တိစုံအကောင်အထည်ဖော်မှုကိုနေရာများစွာတွင်အသုံးပြုရမည်။ ထို့ကြောင့်ကုဒ်၏ပြန်လည်သုံးသပ်ခြင်း, ထိန်းသိမ်းခြင်းနှင့်ရှင်းလင်းမှုတိုးတက်စေရန်ကျွန်ုပ်တို့သည်ဤယုတ္တိဗေဒကိုအသုံးပြုပြီးအခြားယုတ္တိဗေဒကိုတစ်ပုံစံတည်းဖြင့်ကိုင်တွယ်နိုင်သည်။

1 ။ MANUSHWAME ဆိုတာဘာလဲ။

Middleware ဆိုသည်မှာ application တစ်ခုသို့ 0 င်ရောက်ခြင်းမပြုမီ (သို့) 0 န်ဆောင်မှုခံယူသူထံသို့မပို့မီလုပ်ဆောင်သော functional module တစ်ခုကိုရည်ညွှန်းသည်။ PHP တွင်အထူးသဖြင့် laravefony ကဲ့သို့သောမူဘောင်များအသုံးပြုခြင်းကဲ့သို့သောဘုံလုပ်ငန်းများကိုပြုလုပ်လေ့ရှိသောလုပ်ငန်းများကိုပြုလုပ်လေ့ရှိသည်။

2 ။ အဘယ်ကြောင့်ငါ get_cliesient_version ကို Middleware မှတစ်ဆင့်ကိုင်တွယ်ရန်လိုအပ်သနည်း။

ကျွန်ုပ်တို့တွင် Get_Client_Version_version function ရှိသည်ဟု HTTP တောင်းဆိုမှုများမှ client version အချက်အလက်များကိုရရှိရန်အသုံးပြုသော supply ရှိသည်ဆိုပါစို့။ အကယ်. သင်သည်တူညီသောယုတ္တိဗေဒကိုအချိန်တိုင်းထပ်ခါတလဲလဲထပ်ခါတလဲလဲလုပ်ရမယ်ဆိုပါစို့။ ခြောက်သွေ့သောနိယာမနှင့်မကိုက်ညီပါ။ Middleware မှတဆင့်ကျွန်ုပ်တို့သည်ဤယုတ္တိဗေဒကို Controller သို့မဟုတ်လမ်းကြောင်းတစ်ခုစီတွင်ထပ်ခါတလဲလဲအကောင်အထည်ဖော်မှုကိုရှောင်ရှားခြင်း,

3 ။ Get_Client_Version ၏ Middleware ကိုဘယ်လိုအကောင်အထည်ဖော်မလဲ။

PHP တွင် Get_Client_Version function ၏ယုတ္တိဗေဒကိုတည့်မတ်ကိုင်တွယ်ရန် Middleware ကိုမည်သို့အသုံးပြုရမည်နည်း။

3.1 Middleware ဖန်တီးခြင်း

ပထမ ဦး စွာကျွန်ုပ်တို့၏ PHP လျှောက်လွှာတွင် Middleware Class ကိုဖန်တီးရန်လိုအပ်သည်။ ဤအရင်းအမြစ်သည် client version အချက်အလက်များကိုရယူရန်အတွက်တာဝန်ရှိသည်။

ကျွန်ုပ်တို့သည် Laravel framework ကိုအသုံးပြုနေသည်ဟုယူဆပြီး, middleware ကိုဖန်တီးရန် command သည်အောက်ပါအတိုင်းဖြစ်သည် -

 php artisan make:middleware ClientVersionMiddleware

3.2 Middleware Middate ကိုရေးသားခြင်း

app / http / middleware / clientwew ဝက်နမူနာတွင် client version ရရှိရန်ယုတ္တိဗေဒကိုရေးပါလိမ့်မည်။ ဥပမာအားဖြင့် client version သည်တောင်းဆိုထားသော header တွင်ရှိနိုင်သည်သို့မဟုတ် Get Parameter သည်မှဖြတ်သန်းသွားနိုင်သည်။ ကျနော်တို့အမှန်တကယ်လိုအပ်ချက်များအရသိရသည်ဒါကိုကိုင်တွယ်နိုင်ပါတယ်။

 namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class ClientVersionMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        // client version သည်တောင်းဆိုချက် header တွင်ရှိသည်ဟုယူဆပါ
        $clientVersion = $request->header('Client-Version');

        // အကယ်. ဗားရှင်းသတင်းအချက်အလက်ကိုတောင်းဆိုမှုကို header တွင်မတွေ့ပါက,နိုင်URL၏ parameters တွေကိုရယူပါ
        if (!$clientVersion) {
            $clientVersion = $request->query('client_version');
        }

        // ဗားရှင်းသတင်းအချက်အလက်နေဆဲရှာမတွေ့ပါ,အဆိုပါ default version ကိုအသုံးပြုနိုင်ပါတယ်
        if (!$clientVersion) {
            $clientVersion = '1.0.0';  // ပုံမှန်ဗားရှင်းနံပါတ်
        }

        // တောင်းဆိုမှုကိုသို့ဗားရှင်းသတင်းအချက်အလက်ကိုသိမ်းဆည်းပါ,နောက်ဆက်တွဲအသုံးပြုမှုသည်
        $request->attributes->set('client_version', $clientVersion);

        // တောင်းဆိုမှုကိုဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်
        return $next($request);
    }
}

အထက်ဖော်ပြပါကုဒ်များတွင် Client-version field ၏တန်ဖိုးကိုတောင်းဆိုမှုခေါင်းစဉ်မှတန်ဖိုးကို ဦး စွာရယူရန်ကြိုးစားသည်။ ၎င်းကိုမတွေ့ပါက URL parameter client_version မှရယူသည်။ အကယ်. ၎င်းကိုမတွေ့ပါကကျွန်ုပ်တို့သည်ပုံမှန်ဗားရှင်းနံပါတ်ကိုသတ်မှတ်နိုင်သည်။

3.3 မှတ်ပုံတင်ရန်

ထို့နောက်ကျွန်ုပ်တို့သည်ဤငွေကြေးကိုလျှောက်လွှာထဲသို့မှတ်ပုံတင်ရန်လိုအပ်သည်။ Laravel တွင်ကျွန်ုပ်တို့သည် app / http / kernele.phph ဖိုင်တွင် monthedware ကိုမှတ်ပုံတင်နိုင်သည်။

 protected $routeMiddleware = [
    // အခြားအချိုးအစား...
    'client_version' => \App\Http\Middleware\ClientVersionMiddleware::class,
];

3.4 Middleware ကိုအသုံးပြုခြင်း

ယခုကျွန်ုပ်တို့သည်ဤ middleware ကိုလမ်းကြောင်းသို့မဟုတ် Controller တွင်အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်, routing တွင်အသုံးပြုသောအခါသင်ဤရေးနိုင်သည်။

 Route::get('/some-endpoint', function (Request $request) {
    $clientVersion = $request->get('client_version');
    return response()->json(['client_version' => $clientVersion]);
})->middleware('client_version');

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် client_version Middleware ကို အသုံးပြု. လမ်းကြောင်း၌ client_version ၏တန်ဖိုးကိုရယူသည်။ အကယ်. 0 န်ဆောင်မှုခံယူသူသည်တောင်းဆိုချက်တွင်ဗားရှင်းအချက်အလက်များကိုပေးထားပါက၎င်းသည်ထိုလမ်းကြောင်းမှတစ်ဆင့်လမ်းကြောင်းသို့သွားလိမ့်မည်။

3.5 စမ်းသပ်မှု

Middleware ကိုအကောင်အထည်ဖော်ပြီးနောက်လမ်းကြောင်းသို့လျှောက်ထားပြီးနောက်ဗားရှင်းနံပါတ်ကိုတောင်းဆိုမှုများနှင့်အတူဗားရှင်းနံပါတ်ကိုရယူခြင်းကိုစစ်ဆေးနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်စမ်းသပ်နိုင်သည်။

  • client-version field နှင့်အတူ header တောင်းဆိုမှု

  • client_version parameter သည် URL ကိုတောင်းဆိုပါ

  • မည်သည့်ဗားရှင်းသတင်းအချက်အလက်မပေးသည့်အခါပုံမှန်တန်ဖိုးများကိုသုံးပါ

4 ။ အကျဉ်းချုပ်

Middleware မှတစ်ဆင့် Get_Clies_Version_version function ၏ယုတ္တိဗေဒကိုတစ်ပုံစံတည်းပြုပြင်ပြောင်းလဲနိုင်သည်, ကျွန်ုပ်တို့သည်ယုတ္တိဗေဒကိုတစ်ချိန်က Middleware တွင်တစ်ကြိမ်ရရန်ယုတ္တိဗေဒကိုရေးရန်လိုအပ်သည်။ ဤချဉ်းကပ်နည်းသည်ကုဒ်ကိုရိုးရှင်းရုံသာမကဗားရှင်းစီမံခန့်ခွဲမှုကိုပိုမိုဗဟိုပြုနှင့်တသမတ်တည်းကိုလည်းပြုလုပ်သည်။