PHP8 ကိုလွှတ်ပေးခြင်းဖြင့်စွမ်းဆောင်ရည်အသစ်တစ်ခုကိုမိတ်ဆက်ပေးပြီး attribute များဖြစ်သည်။ attribute တွေက developer တွေကိုအတန်းတွေ, နည်းစနစ်တွေနဲ့ attribute တွေအတွက်နောက်ထပ် metadata ကိုထပ်တိုးပေးနိုင်ပါတယ်။ ဤဆောင်းပါးသည်ဓလေ့ထုံးစံများကိုမြှင့်တင်ရန်နှင့်တိကျသောကုဒ်များမှတစ်ဆင့်၎င်းတို့၏လျှောက်လွှာကိုပြသရန်မည်သို့အသုံးပြုမည်ကိုအသေးစိတ်လေ့လာရန်ဤဆောင်းပါးသည်အသေးစိတ်လေ့လာမည်ဖြစ်သည်။
attribute တွေဟာ PHP8 မှာ metadata ယန္တရားအသစ်တစ်ခုဖြစ်ပြီး developer များက PHP Elements များကဲ့သို့သော PHP Elements များကဲ့သို့သော PHP element များအဖြစ်ထပ်မံအချက်အလက်များကိုထပ်မံထည့်သွင်းရန်ခွင့်ပြုသည်။ ဒီ metadata နဲ့အတူ developer တွေက Runties မှာသူတို့ကို runtime မှာ conder ည့်သည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်ထိန်းချုပ်ရန်ပိုမိုနီးကပ်စွာသတင်းအချက်အလက်များကိုပေးရန်နှင့်ပြန်လည်ရယူရန်နှင့်လုပ်ငန်းများကိုလုပ်ဆောင်နိုင်သည်။
PHP တွင်, attribute တွေရဲ့စိတ်ကြိုက် attribute အတန်းများမှတဆင့်အကောင်အထည်ဖော်လျက်ရှိသည်။ Custom Attribute Class သည် PHP ၏ attribute class အတန်းအစားမှအမွေဆက်ခံပြီး attribute ၏အပြုအမူကိုသတ်မှတ်ရန်အတန်းထဲတွင်သက်ဆိုင်ရာဂုဏ်သတ္တိများနှင့်နည်းလမ်းများသတ်မှတ်ရမည်။
ထုံးစံအတန်းများအတွက်လုပ်ဆောင်နိုင်စွမ်းကိုမြှင့်တင်ရန်အတွက် attribute တွေကိုအသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပါသည်။ ပထမ ဦး စွာ developer သည် target class တွင်ထည့်သွင်းရန်လိုအပ်သည့် metadata ပါ 0 င်သောစိတ်ကြိုက် attribute class တစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
use Attribute;
#[Attribute]
class MyAttribute {
public function __construct($data) {}
}
အထက်ပါဥပမာတွင်ကျွန်ုပ်တို့သည် myattribute ဟုခေါ်သောစိတ်ကြိုက် attribute class ကိုသတ်မှတ်ပြီး၎င်းကို attribute အဖြစ်မှတ်သားသည်။ ဤအတန်းအစား၏ကန့်သတ်ချက်သည်နောက်ထပ်အချက်အလက်များကိုသိမ်းဆည်းရန် Parameter $ ဒေတာကိုလက်ခံရရှိသည်။
ထို့နောက်ကျွန်ုပ်တို့သည်ထို attribute ကိုထုံးစံအတန်းသို့လျှောက်ထားနိုင်သည်။ အောက်တွင်ပြထားတဲ့အတိုင်း:
#[MyAttribute('example data')]
class MyClass {}
ဤဥပမာတွင်ကျွန်ုပ်တို့ # [myattribute ('ဥပမာအချက်အလက်)] MyCRUTHARY CASS သို့ MYATTRATE သို့လျှောက်ထားပြီး string through' splectricial data 'ကို parameter အဖြစ်ဖြတ်သန်းရန်။
သင်တန်းများအပြင် attribute များသည်နည်းစနစ်များ၏လုပ်ဆောင်နိုင်မှုကိုမြှင့်တင်ရန်ထုံးစံအတန်းအစားနည်းစနစ်များသို့လည်းအသုံးပြုနိုင်သည်။ ဒီမှာဥပမာတစ်ခုပါ။
class MyClass {
#[MyAttribute('example data')]
public function myMethod() {}
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် mymethod method ကို MyMethod Method သို့လျှောက်ထားပြီး String 'sprogress data' ကို parameter အဖြစ်ဖြတ်သန်းပါ။
အတန်းများနှင့်နည်းစနစ်များအပြင် attribute များသည် Custom Class Properties တွင်လည်းအသုံးပြုနိုင်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
class MyClass {
#[MyAttribute('example data')]
public $myProperty;
}
ဒီဥပမာမှာ MyAtruthy ကိုဒေါ်လာ mytroperty ကိုအတန်းထဲမှ 0 င်ရောက်ပြီး 'ဥပမာအချက်အလက်' ကို parameter အဖြစ်သတ်မှတ်ပါတယ်။
PHP8 တွင် developer များသည် attribute များရရှိရန် Reflection API ကိုသုံးနိုင်သည်။ အောက်ဖော်ပြပါဥပမာသည် Runtime တွင်အတန်းပေါ်တွင်ဂုဏ်သတ္တိများကိုမည်သို့ရနိုင်မည်နည်းကိုပြသသည်။
$reflection = new ReflectionClass('MyClass');
$attributes = $reflection->getAttributes('MyAttribute');
foreach ($attributes as $attribute) {
$data = $attribute->newInstance()->getData();
echo $data;
}
ဤဥပမာတွင် MyClass အတန်းအစားတွင် MyClass အတန်းတွင်အသုံးချရန်နည်းလမ်းများကိုပြန်လည်သုံးသပ်ခြင်းနှင့် getjute strature များကိုအသုံးပြုသည်။
attribute များနှင့်အတူ developer များနှင့်အတူ developer များကထုံးစံအတန်းများသို့ metadata ပိုမိုများပြားလာခြင်း, PHP8 ရှိ attribute များပါ 0 င်သည့် attribute များသည် developer များကိုပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်နှင့်ထိန်းချုပ်ရန်အတွက်ကိရိယာများပိုမိုများပြားစေသည်။ ဤဆောင်းပါး၏နိဒါန်းနှင့်ဥပမာများဤဆောင်းပါး၏နိဒါန်းနှင့်ဥပမာများသည် developer များကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အသုံးပြုခြင်းကိုအထောက်အကူပြုနိုင်သည်။