အောက်ပါမြင်ကွင်းကိုသုံးသပ်ကြည့်ပါ - သင့်တွင် ID, အမည်, အီးမေးလ်, စကားဝှက် Hash, Register Hash, Register Time စသည့်နယ်ပယ်များစွာပါ 0 င်သည့်အသုံးပြုသူလက်ျာ ဒေါ်လာအသုံးပြုသူ ရှိသည်။ ပြင်ပကမ္ဘာသို့ interface တစ်ခုပေးသည့်အခါ, မော်ဒယ်ကိုယ်နှိုက်၏ယုတ္တိဗေဒကိုညစ်ညမ်းစေရန်နှင့်တစ်ချိန်တည်းတွင် code ကိုအတိုချုပ်နှင့်ရှင်းလင်းသော,
အမည်မဖော်လိုသောအတန်းများနှင့် jsonserializable အကောင်အထည်ဖော်မှုကို အသုံးပြု. ဥပမာတစ်ခုဖြစ်သည်။
<Code> <? PHP $ အသုံးပြုသူ = (အရာဝတ်ထု) [
'ID' => 101,
'NOME' => 'အဲလစ်',
'Avatar' => 'Avatar101.jpg',
];
function presentuser (object $ user): jsonserializable
Report New Class ($ user) ကိုပြန်ပို့ပါ jsonserializable {
ပုဂ္ဂလိကအရာဝတ်ထု $ အသုံးပြုသူ;
public function __construct(object $user) {
$this->user = $user;
}
public function jsonSerialize(): array {
return [
'id' => $this->user->id,
'name' => $this->user->name,
'avatar_url' => 'https://gitbox.net/uploads/avatars/' . $this->user->avatar,
];
}
};
}
header ('Content-type: application / JSONS);
echo json_encode (TranslationSer ($ user), JSON_PRETTY_PRING);
</ code>
အမည်မသိအတန်းများကိုဆက်စပ်မှုကိုနီးကပ်စွာချည်နှောင်ထားသည် အမည်မသိအတန်းများသည် ဒေါ်လာအသုံးပြုသူ၏ အရာဝတ်ထုများကိုဆောက်လုပ်သူများမှတစ်ဆင့်သိမ်းဆည်းရမိသည်။ ၎င်းသည်ဤအသုံးပြုမှုတွင်သာရှိသည်။
jsonserializable interface ကိုစနစ်တကျ output ကိုသေချာစေသည် ဤ interface သည်သင့်အား Serialization Logic ကိုစိတ်ကြိုက်ပြုပြင်ခွင့်ပြုသည်, အရာဝတ်ထုများကို array getarraycopy () သို့မဟုတ်လက်စွဲ array ဆောက်လုပ်ခြင်းထက် ပို. ကြော့ရှင်းသော output ထဲသို့ပြောင်းလဲစေနိုင်သည်။
Encapsultion ယုတ္တိဗေဒ format ဥပမာအားဖြင့် Avatar_URL field ၏ splicing Logic သည်အမည်ဝှက်စာသင်ခန်းများ၌လက်ဆေး, controller တွင်အသေးစိတ်အချက်အလက်များကိုရှောင်ရှားခြင်းအားဖြင့်ဖုံးအုပ်ထားသည်။
ရိုးရာနည်းလမ်းကိုဤကဲ့သို့သောရေးသားခြင်းဖြစ်နိုင်သည်။
<Code> echo json_entode (id '=> $ user-id id, id,' id '=> $ user-id user-> name:' https://gitar_URL '=>' https://Gitps://1 adtatar, </ code>ကုဒ်နံပါတ်များသည်အလားတူဖြစ်သော်လည်း output fields များသည်ရှုပ်ထွေးပြီးယုတ္တိဗေဒသည်ရှုပ်ထွေးမှုတစ်ခုဖြစ်ပါကအမည်မသိ။
အမည်မသိလူတန်းစား + jsonserializable သည်ယာယီဒေတာ encapsulation နှင့် output ကိုအသေးစားအသုံးပြုမှုအတွက်အကောင်းဆုံးပေါင်းစပ်မှုဖြစ်သည်။
စီမံကိန်းတွင် DTO လိုအပ်ချက်များအမြောက်အများရှိပါကအထူးပြုအတန်းများသို့မဟုတ်အလိုအလျောက်စက်ကိရိယာများကိုအသုံးပြုခြင်းကိုအသုံးပြုရန်စဉ်းစားပါ။
အမည်မသိအတန်းများသည်အလွဲသုံးစားမှုကိုရှောင်ရှားသည်။ အမည်ဝှက်ထားသောအတန်းများသည်ပြောင်းလွယ်ပြင်လွယ်ရှိသော်လည်းရှုပ်ထွေးသောအပြုအမူများရှိသူများသို့မဟုတ်ပြန်လည်အသုံးပြုရန်လိုအပ်သည့်ယုတ္တိဗေဒကိုကိုင်တွယ်ဖြေရှင်းရန်မသင့်တော်ပါ။