လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> CANTISTITES .ENV configuration files များကိုအစားထိုးနိုင်ပါသလား။ လက်တွေ့ကျတဲ့နှိုင်းယှဉ်

CANTISTITES .ENV configuration files များကိုအစားထိုးနိုင်ပါသလား။ လက်တွေ့ကျတဲ့နှိုင်းယှဉ်

M66 2025-05-22

PHP စီမံကိန်းဖွံ့ဖြိုးတိုးတက်မှုတွင် configuration files များကိုစီမံခန့်ခွဲရန်အတွက်ရွေးချယ်စရာများစွာရှိသည်။ .env ဖိုင်များသည်လက်ရှိပင်မပင်ခေတ်ရှု 0 င်မူဘောင်များ (ဥပမာ - Laravel ကဲ့သို့) အသုံးပြုသောနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ သူတို့ကပြောင်းလွယ်ပြင်လွယ် configuration နှင့်သဘာဝပတ်ဝန်းကျင် variable တွေကို၏တက်ကြွစွာဖတ်ရှုခြင်းများကိုထောကျပံ့။ သို့သော်အချို့သော developer အချို့က PHP Consters ( Define Define ) အစား .env ဖိုင်များအစားအသုံးပြုနိုင်ပါသလား။ ဤဆောင်းပါးသည်စွမ်းဆောင်ရည်, လုံခြုံရေး, ပြောင်းလွယ်ပြင်လွယ်စသဖြင့်နှစ်ခု၏အားသာချက်များနှင့်အားနည်းချက်များကိုခွဲခြမ်းစိတ်ဖြာရန် Get_Defined_Constants function ကိုအသုံးပြုလိမ့်မည်။

1 ။ .env ဖိုင်နှင့်စဉ်ဆက်မပြတ် configuration ဆိုတာဘာလဲ

.env ဖိုင်များကိုများသောအားဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုသတင်းအချက်အလက်, API keys များစသည်တို့ကဲ့သို့သောပတ် 0 န်းကျင်နှင့်ဆိုင်သောဆက်စပ်သောဖွဲ့စည်းပုံများကိုသိမ်းဆည်းရန်အသုံးပြုလေ့ရှိသည်။

 APP_ENV=production
DB_HOST=127.0.0.1
DB_PORT=3306

PHP ရှိ Constants ကိုသတ်မှတ်ရန်နည်းလမ်းမှာ -

 define('APP_ENV', 'production');
define('DB_HOST', '127.0.0.1');
define('DB_PORT', 3306);

Get_Defines_constants မှတဆင့်စိတ်ကြိုက်တပ်သားများအပါအ 0 င ်သတ်မှတ်ထားသောကိန်းဂဏန်းများအားလုံးကိုကျွန်ုပ်တို့ရနိုင်သည်။

 $constants = get_defined_constants(true);
print_r($constants['user']);

2 ။ နှိုင်းယှဉ်ခွဲဝေ

1 ။ စွမ်းဆောင်ရည်နှိုင်းယှဉ်

Execution ထိရောက်မှုရှိသည့်ရှုထောင့်မှကြည့်ရှုခြင်းမှ PHP Constitian ကိုစုစည်းခြင်းအဆင့်တွင်လုပ်ဆောင်ပြီးခွဲခြမ်းစိတ်ဖြာခြင်းထက်ပိုမိုမြန်ဆန်စွာဖတ်ပါ

 define('START', microtime(true));
define('CONFIG_VALUE', 'example');

for ($i = 0; $i < 100000; $i++) {
    $x = CONFIG_VALUE;
}
echo 'Time: ' . (microtime(true) - START);

ဆန့်ကျင်ဘက် -

 define('START', microtime(true));
putenv('CONFIG_VALUE=example');

for ($i = 0; $i < 100000; $i++) {
    $x = getenv('CONFIG_VALUE');
}
echo 'Time: ' . (microtime(true) - START);

အမှန်တကယ်တိုင်းတာခြင်းတွင်စဉ်ဆက်မပြတ်စာဖတ်ခြင်းသည်သိသိသာသာပိုမိုမြန်ဆန်သည်။

2 ။ ပြောင်းလွယ်ပြင်လွယ်နှင့်ထိန်းသိမ်းမှု

.env ၏အားသာချက်သည်၎င်း၏အမျိုးမျိုးပြောင်းလဲခြင်းဖြစ်သည်။ ကွဲပြားခြားနားသော .env ဖိုင်များကို code မပြောင်းလဲဘဲကွဲပြားခြားနားသောဖြန့်ကျက်သောပတ်ဝန်းကျင်များမှတဆင့်သတ်မှတ်နိုင်သည်။

ဆန့်ကျင်ဘက်အနေဖြင့်ကိန်းဂဏန်းများကိုသတ်မှတ်ထားသောတစ်ကြိမ်သာသတ်မှတ်ထားသော (script ကိုပြန်လည်ဖွင့်လှစ်ခြင်းမရှိပါက) မအောင်မြင်ပါကပြုပြင်မွမ်းမံခြင်းမပြုလုပ်နိုင်ပါ။

ဥပမာအားဖြင့် Https://m66.net/api/ တွင်တပ်ဆင်ထားသော 0 န်ဆောင်မှုတစ်ခုမှာ 0 န်ဆောင်မှုပေးရန်လိပ်စာများကိုမတူညီသောပတ်ဝန်းကျင်တွင် configure လုပ်ရန်လိုအပ်သည်။ .env ဖိုင်ကိုဒီလိုလုပ်ဖို့အရမ်းအဆင်ပြေနိုင်ပါတယ်:

 API_URL=https://m66.net/api/

အကယ်. သင်သည်ကိန်းရှင်များကိုအသုံးပြုနေပါကလိပ်စာကိုပြောင်းလဲတိုင်းသင်ကုဒ်ကိုပြန်လည်နေရာချထားရန်သို့မဟုတ်ပြောင်းလဲရန်လိုအပ်သည်။

 define('API_URL', 'https://m66.net/api/');

3 ။ လုံခြုံရေး

.env ဖိုင်များကိုဝက်ဘ်ဆာဗာမှတစ်ဆင့်အပြင်ဘက်နှင့်မထိတွေ့သင့်ပါ။ စနစ်တကျ configure လျှင်သူတို့၏ contents များကိုအပြင်ဘက်သို့မမြင်နိုင်ပါ။ သို့သော် configuration မသင့်လျော်ပါကယိုစိမ့်မှုအန္တရာယ်ရှိနိုင်သည်။

PHP စက်ရုံများသည်ကုဒ်၏အစိတ်အပိုင်းများဖြစ်ပြီး Runtime တွင်သာတည်ရှိပြီးအသုံးပြုသူများမှတိုက်ရိုက် ဝင်ရောက်. မရပါ။ ကုဒ်ကိုယ်နှိုက်နှင့်သက်ဆိုင်သည်နှင့်အမျှကိန်းဂဏန်းများသည်ပိုမိုလုံခြုံမှုရှိသည်။

4 ။ debugging နှင့် visualization

Debugging အတွက်ပြီးပြည့်စုံသောအသုံးပြုသူသတ်မှတ်ထားသောကိန်းစုများကိုအလွယ်တကူကြည့်ရှုရန် Get_Defined_constants ('user'] ကိုသုံးပါ။

 echo "<pre>";
print_r(get_defined_constants(true)['user']);
echo "</pre>";

သို့သော် .env ၏အကြောင်းအရာသည်ခြေရာခံရန်မလွယ်ကူပါ။ အပိုဆောင်းကိရိယာများသို့မဟုတ် encapsulation များမှတစ်ဆင့်ဖတ်ရန်လိုအပ်သည်။

3 ။ လက်တွေ့ကျသောအကြံပြုချက်များ

အတိုင်းအတာ .env ဖိုင် စဉ်ဆက်မပြတ် ( သတ်မှတ် )
ပြပဲှ အလယ်အလတ် (IO-မှီခို) မြင့်မားသော (စုစည်းနေစဉ်အတွင်းတင်)
ပြောင်းလွယ်ပြင်လွယ် မြင့်မားသော (ပတ် 0 န်းကျင်မျိုးစုံအတွက်သင့်လျော်သော) အနိမ့် (static မပြောင်းလဲနိုင်သော)
လုံခွုံရေး ဆာဗာ configuration အပေါ်မှီခို အတော်လေးပိုမိုလုံခြုံ
အဆင်ပြေ debugging အထွေထွေ (မူဘောင်နှင့်ပူးပေါင်းရန်လိုအပ်သည်) ခိုင်ခံ့သော (get_defined_constants)

4 ။ နိဂုံးချုပ်

Constants ကိုအစားထိုးရန်ဖြစ်စေ .env ဖိုင်များသည်စီမံကိန်းလိုအပ်ချက်များပေါ်တွင်မူတည်သည်။

  • အကယ်. စီမံကိန်းတည်ဆောက်ပုံသည်ရိုးရှင်းပြီးဖြန့်ကျက်မှုပတ်ဝန်းကျင်ကိုသတ်မှတ်ထားပါကအမြဲတမ်းစွမ်းဆောင်ရည်နှင့်လုံခြုံရေးကိုရရှိနိုင်သည်။

  • အကယ်. စီမံကိန်းတွင်ပတ် 0 န်းကျင်ဆိုင်ရာဖြန့်ကျက်မှုနှင့်တက်ကြွစွာပြုပြင်ပြောင်းလဲမှုနှင့်ပြောင်းလဲနေသော configuration loading ပါ 0 င်ပါက .env ဖိုင်သည်ပိုမိုသင့်တင့်သောရွေးချယ်မှုတစ်ခုဖြစ်နေဆဲပင်။

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်နှစ်ခုကိုပေါင်းစပ်ရန်အကြံပြုထားပါသည်။ code တွင် code တွင် corie ည့်သည်များတွင် corie configurations အနည်းငယ်ကိုအများအားဖြင့်စုဆောင်းရန်နှင့်အထိခိုက်မခံသော configurations နှစ်ခုကို count လုပ်ပါ