ဒေတာလွှဲပြောင်းမှုအရာဝတ်ထု (DTO) သည်အသုံးများသောအလွှာများအကြားရှိအချက်အလက်များကိုကွဲပြားခြားနားသောအလွှာများအကြားအချက်အလက်များကိုထုတ်ဖော်ပြောဆိုလေ့ရှိသည်။ အရာဝတ်ထုများတွင်ဒေတာများကို encapsulating လုပ်ခြင်းဖြင့် DTO သည်ဒေတာပြုပြင်ခြင်းစီးဆင်းမှုကိုရိုးရှင်းအောင်ပြုလုပ်နိုင်ပြီးအလွှာများအကြား decouple တက်နိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် DTO ကိုဒေတာအလွှာနှင့် 0 န်ဆောင်မှုအလွှာနှင့် 0 န်ဆောင်မှုအလွှာနှင့် Control layer တို့အကြားဒေတာထုတ်လွှင့်ရန်အတွက်အသုံးပြုသည်။ ၎င်းသည်တည်ဆောက်သူများအားလွယ်ကူစွာပြုပြင်ထိန်းသိမ်းမှုနှင့်ချဲ့ထွင်ရန်အတွက်စည်းလုံးညီညွတ်မှုနှင့်စုံထောက်သောအချက်အလက်ဖွဲ့စည်းပုံတွင်တည်ဆောက်သူများကိုထောက်ပံ့ပေးသည်။
PHP တွင်ရှိသောစရိုက်လက်ခဏာသည် developer များကိုနည်းအမျိုးမျိုးသို့နည်းစနစ်များနှင့် attribute များကိုထိုးသွင်းရန်ခွင့်ပြုသည်။ DTO ကိုတည်ဆောက်ရန် TRAIY ကိုအသုံးပြုခြင်းသည်ဒေတာအရာဝတ်ထုများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စေရုံသာမက data differxt layer ၏ယူနစ်စစ်ဆေးခြင်းကိုလည်းပြုလုပ်ပေးသည်။
အောက်ပါဥပမာသည်စရိုက်ပေါ် အခြေခံ. userdto သတ်မှတ်ချက်ကိုပြသသည်။
trait UserDTO
{
private $id;
private $username;
private $email;
public function getId(): ?int
{
return $this->id;
}
public function setUsername(string $username): void
{
$this->username = $username;
}
public function getUsername(): ?string
{
return $this->username;
}
public function setEmail(string $email): void
{
$this->email = $email;
}
public function getEmail(): ?string
{
return $this->email;
}
}
အဆိုပါရိုသည်အသုံးပြုသူ ID, အသုံးပြုသူအမည်နှင့်စာတိုက်ပုံး attribute များနှင့်သက်ဆိုင်သော getter နှင့် setter နည်းလမ်းများကိုထောက်ပံ့ပေးသည်။ developer များသည်တိကျစွာလိုအပ်ချက်များနှင့်အညီရိုကိုတိုးချဲ့နိုင်သည်။
DTO ကို အသုံးပြု. ဒေတာထုတ်လွှင့်ခြင်းနှင့်စိစစ်ခြင်းလုပ်ငန်းစဉ်သည်ရိုးရှင်းပြီးရှင်းလင်းသည်။ ပထမ ဦး စွာ DTO အရာဝတ်ထုတစ်ခုကို ဖန်တီး. တန်ဖိုးများကို setter method မှတဆင့်သတ်မှတ်ပါ။ ထို့နောက်စီးပွားရေးယုတ္တိဗေဒအပြောင်းအလဲအတွက်သို့မဟုတ်အတည်ပြုရန်အတွက်ဒေတာများကိုရယူရန် Getter method ကိုသုံးပါ။
ဤတွင် DTO ကို အသုံးပြု. Controller ၏ဥပမာတစ်ခုဖြစ်သည်။
class UserController
{
public function register(Request $request)
{
// လက်ချက်DTOနှင့်တန်ဖိုးကို assign
$userDTO = new class {
use UserDTO;
};
$userDTO->setUsername($request->input('username'));
$userDTO->setEmail($request->input('email'));
// ဒေတာအတည်ပြုချက်
$validator = Validator::make($request->all(), [
'username' => 'required',
'email' => 'required|email',
]);
if ($validator->fails()) {
return response()->json(['error' => $validator->errors()], 400);
}
// Post-processing စီးပွားရေးယုတ္တိဗေဒကိုစစ်ဆေးပါ
// ...
}
}
ဥပမာတွင် Usercontroller ၏မှတ်ပုံတင်နည်းလမ်းသည်အမည်မသိလူတန်းစားဥပမာကိုဖန်တီးပေးပြီး UserDTTO လက်ခဏာကိုအသုံးပြုသည်။ တောင်းဆိုထားသောဒေတာများကို setter method မှတဆင့်ဖြတ်သန်းပါ။ အချက်အလက်များ၏မှန်ကန်မှုနှင့်လုံခြုံမှုကိုသေချာစေရန် input ကိုအတည်ပြုရန် validator ကိုသုံးပါ။
PHP ကို DTO ဒီဇိုင်းပုံစံများဖြင့် flextible နှင့်လွယ်ကူသောအချက်အလက်ပို့စက် layer ကိုပေါင်းစပ်။ ဖြည့်စွက်နိုင်သည်။ ဤနည်းလမ်းသည်ကုဒ်ပြန်သုံးနိုင်မှုကိုတိုးတက်စေသည်သာမကအချက်အလက်ထုတ်လွှင့်ခြင်းနှင့်စီးပွားရေးယုတ္တိဗေဒကိုထိရောက်စွာခွဲထုတ်ခြင်း, ဤဆောင်းပါး၏ဥပမာများနှင့်ရှင်းလင်းချက်များသည်ဒေတာအလွှာများကိုတည်ဆောက်သည့်အခါ PHP developer များအတွက် PHP developer များအတွက်လက်တွေ့ကျသောရည်ညွှန်းချက်များပေးနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။