Symfony Framework သည် developer များတည်ငြိမ်ပြီးလုံခြုံစိတ်ချနိုင်သည့် 0 က်ဘ်အပလီကေးရှင်းများကိုလျင်မြန်စွာတည်ဆောက်ရန်ကြွယ်ဝသော PHP ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာကိရိယာတစ်ခုဖြစ်သည်။ SymFony တွင်အဓိကအယူအဆတစ်ခုအနေဖြင့် Middleware သည်တောင်းဆိုမှုနှင့်တုန့်ပြန်မှုအပြောင်းအလဲများအတွင်းအပိုဆောင်းယုတ္တိဗေဒကိုလုပ်ဆောင်ရန်အတွက်တာ 0 န်ရှိသည်။
Middleware သည်လျှောက်လွှာနှင့်ဆာဗာအကြားတည်ရှိပြီးတောင်းဆိုထားသောဒေတာများကိုတောင်းဆိုခြင်းမပြုမီသို့မဟုတ်အပြီးတောင်းဆိုခြင်း, symfony တွင် middfones ကိုဖန်တီးခြင်းကို httpmmetchingwareface interface ကိုအကောင်အထည်ဖော်ခြင်းဖြင့်ပြုလုပ်လေ့ရှိသည်။ ဤတွင်ရိုးရှင်းသောဥပမာ Middleware အတန်းအစားဖြစ်သည်။
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\HttpMiddlewareInterface;
use Symfony\Component\HttpKernel\RequestHandlerInterface;
class DataValidationMiddleware implements HttpMiddlewareInterface
{
public function process(Request $request, RequestHandlerInterface $handler): Response
{
// တောင်းဆိုမှုကိုဒေတာရယူပါ
$data = $request->request->all();
// ဒေတာဗလာဖြစ်ကြောင်းအတည်ပြုပါ
if (empty($data)) {
return new Response('ဒေတာဗလာမဖြစ်နိုင်ပါ', 400);
}
// ဒေတာပြုပြင်ခြင်း:ကန ဦး အက်ခရာစာလုံး
$data['name'] = ucfirst($data['name']);
$request->request->replace($data);
// လာမည့် middate ကိုသို့မဟုတ်တောင်းဆိုခြင်းအပြောင်းအလဲနဲ့
return $handler->handle($request);
}
}
Middleware Class ကိုသတ်မှတ်ပြီးနောက်၎င်းကို SymFony ၏ 0 န်ဆောင်မှု configuration file တွင်မှတ်ပုံတင်ပြီးအမှတ်အသားပြုရန်လိုအပ်သည်။ ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည် -
services:
_defaults:
autowire: true
App\Middleware\DataValidationMiddleware:
tags:
- { name: 'http_middleware' }
ဤဖွဲ့စည်းပုံအခြေခံဥပဒေပြုလုပ်ပြီးနောက် Symfony သည်တောင်းဆိုမှုတစ်ခုချင်းစီသည်ဒေတာများကိုစစ်ဆေးခြင်းနှင့်ပြုပြင်ခြင်းများကိုပြန်လည်ပြုပြင်ရန်အတွက်တောင်းဆိုခြင်း Pipeline သို့အလိုအလျှောက်ထည့်သွင်းလိမ့်မည်။
Controller တွင် Middleware မှတောင်းဆိုသောတောင်းဆိုမှုကိုတိုက်ရိုက်အသုံးပြုနိုင်သည်။ နမူနာ controller ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class UserController extends AbstractController
{
/**
* @Route("/user", methods={"POST"})
*/
public function createUser(Request $request): Response
{
// တောင်းဆိုထားသောဒေတာကိုဤနေရာတွင်အတည်ပြုပြီးသည်
// စီးပွားရေးအပြောင်းအလဲနဲ့လုပ်ဆောင်ပါ
return $this->redirectToRoute('home');
}
}
Symfony Middleware ယန္တရားမှတစ်ဆင့် developer များကတောင်းဆိုမှုဆိုင်ရာဘဝသံသရာတွင် data data verification ကိုအလွယ်တကူထည့်သွင်းနိုင်ပြီးလျှောက်လွှာလုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုတိုးတက်စေသည်။ ဒေတာအပြောင်းအလဲဖြစ်စဉ်များကိုအလိုအလျောက်အကောင်အထည်ဖော်ရန်အတွက် Middleware Classes နှင့် configure configure configure tag များကို configure လုပ်ပါ။ Controller Code ကိုရိုးရှင်းအောင်လုပ်ပါ။