PHP ရှိ OOP တွင် Trait အများအပြား
Class တစ်ခုတွင် Trait တစ်ခုထက် ပိုသုံးနိုင်ပါတယ်။ ဒီမှာပဲ ၎င်းတို့ရဲ့ အားသာချက်က မျိုးဆက်ပြန်ခြင်းထက် ပိုကောင်းတာကို ပြသနေပါတယ်။ Class ထဲမှာ အသုံးပြုချင်တဲ့ Trait တွေကို <use ဆိုတဲ့ keyword နောက်မှာ comma ခံပြီး ဖော်ပြနိုင်ပါတယ်။
ဥပမာကို ကြည့်ကြရအောင်။ Trait နှစ်ခု ရှိပါစို့။ ပထမတစ်ခု -
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
ဒုတိယတစ်ခု -
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
ကျွန်ုပ်တို့ရဲ့ Class ထဲမှာ Trait တွေကို အသုံးပြုကြမယ် -
<?php
class User
{
use Helper1, Helper2; // trait တွေကို ချိတ်ဆက်တယ်
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Trait <Trait1, <Trait2 နှင့် <Trait3 ဆိုတဲ့ Trait သုံးခုကို ဖန်တီးပါ။ ပထမ Trait ထဲမှာ <1 ပြန်ပေးတဲ့ method <method1 ရှိပါစေ၊ ဒုတိယ Trait ထဲမှာ <2 ပြန်ပေးတဲ့ method <method2 ရှိပါစေ၊ တတိယ Trait ထဲမှာ <3 ပြန်ပေးတဲ့ method <method3 ရှိပါစေ။ ဒီ method တွေအားလုံးက private ဖြစ်ပါစေ။
ကျွန်ုပ်တို့ ဖန်တီးခဲ့တဲ့ Trait သုံးခုလုံးကို အသုံးပြုတဲ့ <Test class ကို ဖန်တီးပါ။ ဒီ class ထဲမှာ ချိတ်ဆက်ထားတဲ့ Trait တွေရဲ့ method တွေရဲ့ ရလဒ်တွေကို ပေါင်းပြီး ပြန်ပေးတဲ့ public method <getSum ကို ဖန်တီးပါ။