PHP Development တွင် PHP Development တွင် Parameters, status တန်ဖိုးများနှင့်ပရိုဂရမ်ကွပ်မျက်စဉ်အတွင်းပြောင်းလဲရန်မရည်ရွယ်သည့်အခြားအချက်အလက်များကို configure လုပ်လေ့ရှိသည်။ PHP 5.3 မှ 5.3 ကတည်းကအမည်စာရင်းများကိုမိတ်ဆက်ပေးခြင်းသည် Code အဖွဲ့အစည်းနှင့် Modular စွမ်းရည်ကိုများစွာတိုးတက်စေခဲ့သည်။ သို့သော်လက်တွေ့ကျသောပြ problem နာတစ်ခုအရဤအချက်များလည်းအောက်ပါအတိုင်းဖြစ်သည် - သတ်သတ်မှတ်မှတ် namespace တစ်ခုတွင်ဖော်ပြထားသည့်အတိုင်း PHP ကိုယ်တိုင်က PHP ကိုယ်တိုင်က PHP ကိုယ်တိုင်က php ကိုယ်နှိုက်ကို namespace များအတွက် filtering filtering forcting ကိုတိုက်ရိုက်မပေးပါဘူး။ ယခုအချိန်တွင် Get_Defined_constants () သည် နက်ရှိုင်းသောသုတေသနနှင့်ထိုက်တန်သောကိရိယာတစ်ခုဖြစ်လာသည်။
Get_Defined_constants () function သည် function ကိုလက်ရှိ script တွင်သတ်မှတ်ထားသောကိန်းဂဏန်းများအားလုံးပါ 0 င်သည့်အပေါင်းအသင်းဆိုင်ရာခင်းကျင်းမှုကိုပြန်ပို့သည်။ Boolean စစ်မှန်တဲ့ parameter သည်ဖြတ်သန်းခြင်းအားဖြင့်သင်သည် (အသုံးပြုသူသတ်မှတ်ထားသောမဲရုံအပါအ 0 င်) ခွဲခြားခြင်းဖြင့်စုစည်းနိုင်သည်။
$constants = get_defined_constants(true);
print_r($constants['user']); // အားလုံးအသုံးပြုသူသတ်မှတ်ထားသောကိန်းစုကိုရယူပါ
၎င်းသည် Php Core Continnants နှင့်အခြားမှအခြားဆီလျော်သောအကြောင်းအရာများကိုစစ်ထုတ်ရန်အစပိုင်းတွင်ကူညီနိုင်သည်။ သို့သော် namespace အားဖြင့်ဖြိုဖျက်ရန်မလုံလောက်ပါ။
Namespaces တွင်သတ်မှတ်ထားသော namespace တွင်ဖော်ပြထားသောစဉ်ဆက်မပြတ်သည် PHP တွင်ကမ္ဘာလုံးဆိုင်ရာအစဉ်အမြဲတည်ရှိပြီး၎င်းတို့၏ namespace ရှေ့ဆက်များပါ 0 င်သည်။ ဥပမာအားဖြင့်:
namespace App\Config;
const TIMEOUT = 30;
Get_Defined_constants အတွက်ပြန်လာရလဒ်တွင်ဤစဉ်ဆက်မပြတ်၏အဓိကအမည်မှာ app \ config \ timeout ဖြစ်လိမ့်မည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်ပုံမှန်ပွဲစဉ်သို့မဟုတ်ရှေ့ဆက်ရှေ့ဆက်တရားစီရင်ခြင်းအားဖြင့်ပြန်လာရလဒ်မှကျွန်ုပ်တို့စိတ်ဝင်စားသော Continants များကိုစစ်ထုတ်နိုင်သည်။
ဤတွင်အသုံးပြုသူသတ်မှတ်ထားသောမဲဆန္ဒနယ်များမှသီးခြားမဟုတ်သော namespace တစ်ခု၏အစိတ်အပိုင်းများကိုထုတ်လွှတ်သည့်ရိုးရှင်းသော function တစ်ခုမှာ -
function get_namespace_constants(string $namespace): array {
$allConstants = get_defined_constants(true);
$userConstants = $allConstants['user'] ?? [];
$namespacePrefix = trim($namespace, '\\') . '\\';
$filteredConstants = [];
foreach ($userConstants as $name => $value) {
if (strpos($name, $namespacePrefix) === 0) {
$filteredConstants[$name] = $value;
}
}
return $filteredConstants;
}
ခေါ်ဆိုမှုဥပမာ -
print_r(get_namespace_constants('App\\Config'));
ဤလုပ်ဆောင်ချက်သည်အောက်ပါဖွဲ့စည်းပုံနှင့်ဆင်တူသည်။
Array
(
[App\Config\TIMEOUT] => 30
[App\Config\RETRIES] => 5
)
ကော်မတီပထမ ဦး ဆုံးသတ်မှတ်ရမည်ဖြစ်သည်
Get_Defined_constants () ဖုန်းခေါ်ဆိုခြင်းမပြုမီသတ်မှတ်ထားသောကိန်းဂဏန်းများကိုသာရနိုင်သည်။ ဆိုလိုသည်မှာသင်သည်သက်ဆိုင်ရာဖိုင် (သို့မဟုတ် namespace) ကိုသေချာအောင်လုပ်ရန်လိုသည်။
အမည်သတ်မှတ်ချက်များ namespace မျိုးစုံအောက်တွင်အဆက်မပြတ်အမည်များထပ်တူမရှိမဖြစ်လိုအပ်သည်ဆိုပါကစစ်ထုတ်ခြင်းသည် (namespace အပါအ 0 င်) အမည်အပြည့်အစုံပေါ်တွင်မူတည်သည်။
tool functions များသို့မဟုတ်လူတန်းစားနည်းလမ်းများအဖြစ် encapsulated နိုင်ပါသည် အကယ်. သင်သည် module (သို့) namespace အောက်ရှိ consinants များကိုမကြာခဏရယူရန်လိုအပ်ပါကအထက်ပါယုတ္တိဗေဒကို Code Reusability ကိုတိုးတက်စေရန်အထွေထွေ tool class သို့သင်ခန်းစာယူနိုင်သည်။
အချို့သောမူဘောင်များသို့မဟုတ်ထုံးစံမူဘောင်များတွင် Constitals သို့မဟုတ် configuration ပစ္စည်းများအတွက်အခြားနည်းလမ်းများသို့မဟုတ်ဖြည့်စွက်ပစ္စည်းများအဖြစ်အသုံးပြုနိုင်သည်။ အလိုအလျောက် configuration ကိုမှတ်ပုံတင်ခြင်းမှတ်ပုံတင်ခြင်းကို Get_namespace_Comants နှင့်ပေါင်းစပ်။ အကောင်အထည်ဖော်နိုင်သည်။ ဥပမာအားဖြင့်:
$config = get_namespace_constants('App\\Config');
file_put_contents('https://m66.net/log/config_snapshot.json', json_encode($config));
ဤနည်းအားဖြင့် configuration snapshots များကိုကယ်တင်ခြင်းနှင့်ပြုပြင်ထိန်းသိမ်းမှုသို့မဟုတ်ပြ esh နာဖြေရှင်းရန်အတွက်ဝေးလံခေါင်သီသောစနစ်များသို့ကယ်တင်ခြင်းသို့မဟုတ်ပေးပို့နိုင်သည်။
PHP သည် Namespace မှ Constants ကိုစာရင်းပြုစုသောဇာတိ function များကိုတိုက်ရိုက်မထောက်ပံ့သော်လည်း Namesfines_constants () ကို Namespace ရှေ့ဆက်စည်းမျဉ်းစည်းကမ်းများဖြင့်ဤလိုအပ်ချက်ကိုရရှိနိုင်ပါသည်။ ထိုကဲ့သို့သောကျွမ်းကျင်မှုများကိုကျွမ်းကျင်ခြင်းသည် Code အဖွဲ့အစည်း၏စွမ်းရည်ကိုတိုးတက်စေရုံသာမကမူဘောင်ဖွံ့ဖြိုးတိုးတက်မှုသို့မဟုတ်ကြီးမားသောစနစ်များတွင်အမှန်တကယ်တန်ဖိုးကိုအပြည့်အဝကစားသည်။