MISMANGEWASWASWARE သည်ခေတ်သစ်ဝက်ဘ်မူဘောင်၏အရေးကြီးသောအစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး developer များကို application သို့မရောက်ရှိမီသို့မဟုတ်တုန့်ပြန်မှုသည်လျှောက်လွှာကိုချန်ထားခဲ့သည်။ YII မူဘောင်၏ Middleware ယန္တရားသည် HTTP တောင်းဆိုမှုများနှင့်တုံ့ပြန်မှုများကိုကိုင်တွယ်ရန်ရိုးရှင်းသောနှင့်ပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းဖြစ်သည်။
ဤဆောင်းပါးသည် YII မူဘောင်တွင် Middleward ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီး developer များအနေဖြင့် Millegetware မည်သို့အကောင်အထည်ဖော်ရမည်ကိုနားလည်စေရန်ကူညီရန်လက်တွေ့ကျသောဥပမာများကိုပြသသည်။
Middleware ဆိုသည်မှာတောင်းဆိုမှုများနှင့်တုန့်ပြန်မှုအရာဝတ်ထုများကိုလက်ခံပြီး၎င်းတို့ကိုလုပ်ဆောင်သည်။ သစ်ခုတ်ခြင်း, ခွင့်ပြုချက်အတည်ပြုခြင်း, အမှားကိုင်တွယ်ခြင်းစသည်တို့ကဲ့သို့သောဘုံလုပ်ငန်းများ, ဤဘုံလုပ်ဆောင်မှုများကို Controller မှခွဲထုတ်ရန်, ကုဒ်ပြန်လည်သုံးသပ်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေရန် middleware ကိုသုံးပါ။
YII မူဘောင်တွင် application configuration file တွင် Middleware ကိုမှတ်ပုံတင်ရန်လိုအပ်သည်။ configuration file file file config / web.php ကို ဖွင့်ပြီး Middleward Configuration ပစ္စည်းများထည့်ပါ။
return [
'components' => [
// ...
],
'middlewares' => [
'app\middlewares\LoggerMiddleware',
'app\middlewares\AuthMiddleware',
// ...
],
];
အပေါ်ကဥပမာမှာစာသစ် ချေး နဲ့ mostkware နဲ့ mostkware ကို မှတ်ပုံတင်ထားတယ်။ ၎င်းတို့အား app unidware namespace အောက်တွင်သတ်မှတ်ထားသင့်သည်။
အချို့သည်များသောအားဖြင့်အလွန်ရိုးရှင်းသော်လည်းအလွန်ရိုးရှင်းပြီး လက်ကိုင် နည်းလမ်းတစ်ခုတည်းသာလိုအပ်သည်။ ဤနည်းလမ်းတွင်ကျွန်ုပ်တို့တောင်းဆိုချက်ကိုလာမည့် Middleware သို့မဟုတ် application သို့လွှဲပြောင်းရန် $ လာမည့် ($ တောင်းဆိုမှု) ကို အသုံးပြု. တောင်းဆိုမှုနှင့်တုန့်ပြန်မှုကိုကိုင်တွယ်နိုင်သည်။
ဤတွင်ရိုးရှင်းသော loggormskware ဥပမာတစ်ခုဖြစ်သည်။
namespace app\middlewares;
use yii\base\BaseObject;
use yii\web\Request;
use yii\web\Response;
class LoggerMiddleware extends BaseObject
{
public function handle(Request $request, callable $next): Response
{
$this->logRequest($request);
$response = $next($request);
$this->logResponse($response);
return $response;
}
private function logRequest(Request $request): void
{
// မှတ်တမ်းတောင်းဆိုခြင်းမှတ်တမ်း
}
private function logResponse(Response $response): void
{
// မှတ်တမ်းတုံ့ပြန်မှုမှတ်တမ်း
}
}
အထက်ပါဥပမာတွင် logrequest နှင့် loresponse နည်းလမ်းများအသီးသီးခေါ်ဆိုခြင်းဖြင့်တောင်းဆိုမှုနှင့်တုန့်ပြန်မှုမှတ်တမ်းများကို log in log ။ တောင်းဆိုမှုကို $ နောက်လာမည့် ($ တောင်းဆိုမှု) မှတဆင့်ဆက်လက်ဖြတ်သန်းပြီးနောက်ဆုံးတွင်တုန့်ပြန်မှုကိုပြန်ပို့သည်။
ကွပ်မျက်မှု၏အမိန့်သည်အရေးပါသည်နှင့်၎င်းတို့၏အပြောင်းအလဲနဲ့အမိန့်ဆုံးဖြတ်သည်။ YII မူဘောင်တွင်ကျွန်ုပ်တို့သည် Execute အမိန့်ကို Middleware Configuration တွင်ညှိခြင်းဖြင့်ထိန်းချုပ်နိုင်သည်။
ဤတွင်နမူနာ configuration တစ်ခုဖြစ်သည့်နမူနာ configuration တစ်ခုမှာ MobileWare ၏ Execute အမိန့်ကိုမည်သို့သတ်မှတ်ရမည်ကိုပြသသည်။
'middlewares' => [
'app\middlewares\LoggerMiddleware',
'app\middlewares\AuthMiddleware',
// ...
],
ဤပြင်ဆင်မှုတွင် loggergnwarewareware များ မစတင်မီကွပ်မျက်ခံရလိမ့်မည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အကောင်းဆုံးသောအလေ့အကျင့်များအတိုင်းလိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုသေချာစေရန်ကူညီနိုင်သည်။
YII မူဘောင်တွင် Middleware လုပ်ဆောင်မှုသည် HTTP တောင်းဆိုမှုများနှင့်တုံ့ပြန်မှုများကိုကိုင်တွယ်ရန်အတွက်ပြောင်းလွယ်ပြင်လွယ်။ ထိရောက်သောဖြေရှင်းနည်းကိုပေးသည်။ အချမ်းချလောက်ကွဲပြားခြားစရာကို အသုံးပြု. မိတ္တူပွားမှုများကိုဖြိုခွဲပြီး Code ၏ထိန်းသိမ်းမှုနှင့်ပြန်လည်သုံးသပ်ခြင်းကိုတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါးတွင်ပုံနမူနာများနှင့်အကောင်းဆုံးအလေ့အကျင့်များသည် developer များကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့် YII မူဘောင်တွင်ပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်သဘောပေါက်ရန်ကူညီနိုင်သည်ဟုမျှော်လင့်ပါသည်။