PHP application များစွာတွင်အထူးသဖြင့် API interfaces များသို့မဟုတ်မိုဘိုင်းထုတ်ကုန်များနှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ client ၏ဗားရှင်းအချက်အလက်များကိုကျွန်ုပ်တို့မကြာခဏလုပ်ဆောင်ရန်လိုအပ်သည်။ ယေဘုယျအားဖြင့်တောင်းဆိုမှုခေါင်းစီးများ, URL Parameters သို့မဟုတ် Cookies မှရရှိသော client version အချက်အလက်များကိုရယူရန်နည်းလမ်းများစွာရှိသည်။ မည်သို့ပင်ဖြစ်စေ Get_Client_Version_version လုပ်ဆောင်မှု၏ယုတ္တိစုံအကောင်အထည်ဖော်မှုကိုနေရာများစွာတွင်အသုံးပြုရမည်။ ထို့ကြောင့်ကုဒ်၏ပြန်လည်သုံးသပ်ခြင်း, ထိန်းသိမ်းခြင်းနှင့်ရှင်းလင်းမှုတိုးတက်စေရန်ကျွန်ုပ်တို့သည်ဤယုတ္တိဗေဒကိုအသုံးပြုပြီးအခြားယုတ္တိဗေဒကိုတစ်ပုံစံတည်းဖြင့်ကိုင်တွယ်နိုင်သည်။
Middleware ဆိုသည်မှာ application တစ်ခုသို့ 0 င်ရောက်ခြင်းမပြုမီ (သို့) 0 န်ဆောင်မှုခံယူသူထံသို့မပို့မီလုပ်ဆောင်သော functional module တစ်ခုကိုရည်ညွှန်းသည်။ PHP တွင်အထူးသဖြင့် laravefony ကဲ့သို့သောမူဘောင်များအသုံးပြုခြင်းကဲ့သို့သောဘုံလုပ်ငန်းများကိုပြုလုပ်လေ့ရှိသောလုပ်ငန်းများကိုပြုလုပ်လေ့ရှိသည်။
ကျွန်ုပ်တို့တွင် Get_Client_Version_version function ရှိသည်ဟု HTTP တောင်းဆိုမှုများမှ client version အချက်အလက်များကိုရရှိရန်အသုံးပြုသော supply ရှိသည်ဆိုပါစို့။ အကယ်. သင်သည်တူညီသောယုတ္တိဗေဒကိုအချိန်တိုင်းထပ်ခါတလဲလဲထပ်ခါတလဲလဲလုပ်ရမယ်ဆိုပါစို့။ ခြောက်သွေ့သောနိယာမနှင့်မကိုက်ညီပါ။ Middleware မှတဆင့်ကျွန်ုပ်တို့သည်ဤယုတ္တိဗေဒကို Controller သို့မဟုတ်လမ်းကြောင်းတစ်ခုစီတွင်ထပ်ခါတလဲလဲအကောင်အထည်ဖော်မှုကိုရှောင်ရှားခြင်း,
PHP တွင် Get_Client_Version function ၏ယုတ္တိဗေဒကိုတည့်မတ်ကိုင်တွယ်ရန် Middleware ကိုမည်သို့အသုံးပြုရမည်နည်း။
ပထမ ဦး စွာကျွန်ုပ်တို့၏ PHP လျှောက်လွှာတွင် Middleware Class ကိုဖန်တီးရန်လိုအပ်သည်။ ဤအရင်းအမြစ်သည် client version အချက်အလက်များကိုရယူရန်အတွက်တာဝန်ရှိသည်။
ကျွန်ုပ်တို့သည် Laravel framework ကိုအသုံးပြုနေသည်ဟုယူဆပြီး, middleware ကိုဖန်တီးရန် command သည်အောက်ပါအတိုင်းဖြစ်သည် -
php artisan make:middleware ClientVersionMiddleware
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 မှရယူသည်။ အကယ်. ၎င်းကိုမတွေ့ပါကကျွန်ုပ်တို့သည်ပုံမှန်ဗားရှင်းနံပါတ်ကိုသတ်မှတ်နိုင်သည်။
ထို့နောက်ကျွန်ုပ်တို့သည်ဤငွေကြေးကိုလျှောက်လွှာထဲသို့မှတ်ပုံတင်ရန်လိုအပ်သည်။ Laravel တွင်ကျွန်ုပ်တို့သည် app / http / kernele.phph ဖိုင်တွင် monthedware ကိုမှတ်ပုံတင်နိုင်သည်။
protected $routeMiddleware = [
// အခြားအချိုးအစား...
'client_version' => \App\Http\Middleware\ClientVersionMiddleware::class,
];
ယခုကျွန်ုပ်တို့သည်ဤ 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 န်ဆောင်မှုခံယူသူသည်တောင်းဆိုချက်တွင်ဗားရှင်းအချက်အလက်များကိုပေးထားပါက၎င်းသည်ထိုလမ်းကြောင်းမှတစ်ဆင့်လမ်းကြောင်းသို့သွားလိမ့်မည်။
Middleware ကိုအကောင်အထည်ဖော်ပြီးနောက်လမ်းကြောင်းသို့လျှောက်ထားပြီးနောက်ဗားရှင်းနံပါတ်ကိုတောင်းဆိုမှုများနှင့်အတူဗားရှင်းနံပါတ်ကိုရယူခြင်းကိုစစ်ဆေးနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်စမ်းသပ်နိုင်သည်။
client-version field နှင့်အတူ header တောင်းဆိုမှု
client_version parameter သည် URL ကိုတောင်းဆိုပါ
မည်သည့်ဗားရှင်းသတင်းအချက်အလက်မပေးသည့်အခါပုံမှန်တန်ဖိုးများကိုသုံးပါ
Middleware မှတစ်ဆင့် Get_Clies_Version_version function ၏ယုတ္တိဗေဒကိုတစ်ပုံစံတည်းပြုပြင်ပြောင်းလဲနိုင်သည်, ကျွန်ုပ်တို့သည်ယုတ္တိဗေဒကိုတစ်ချိန်က Middleware တွင်တစ်ကြိမ်ရရန်ယုတ္တိဗေဒကိုရေးရန်လိုအပ်သည်။ ဤချဉ်းကပ်နည်းသည်ကုဒ်ကိုရိုးရှင်းရုံသာမကဗားရှင်းစီမံခန့်ခွဲမှုကိုပိုမိုဗဟိုပြုနှင့်တသမတ်တည်းကိုလည်းပြုလုပ်သည်။