PHP တွင် Configuration files များအထူးသဖြင့်စီမံကိန်းဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ကြည့်ရှုရန်လိုသည်။ Configuration files များသည်များသောအားဖြင့် system settings အမျိုးမျိုးကိုသိုလှောင်ထားပြီးမည်သည့်အချိန်တွင်မဆိုပြောင်းလဲနိုင်သည်။ ဖွဲ့စည်းမှု၏ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ဖိုင်များတွင်ကွဲပြားခြားနားမှုများကိုရှာဖွေခြင်းသည်အရေးပါသည်။ array_diff_Usassoc () function သည် array နှစ်ခုအကြားကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ထားသည့်အလွန်အသုံး 0 င်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် configuration files များပြောင်းလဲခြင်းကိုရှာဖွေတွေ့ရှိရန် array_diff_Usassoc () function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
Array_diff_UAAssoC () PHP တွင် built-in function တစ်ခုဖြစ်ပြီး၎င်းသည်ခင်းကျင်းမှုနှစ်ခုအကြားကွဲပြားခြားနားမှုများကို အသုံးပြု. custom callback function ကိုအသုံးပြုသည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
$ array1 နှင့် $ array2 : နှိုင်းယှဉ်ခံရဖို့လိုအပ်တဲ့ arrys နှစ်ခု။
$ key_compare_funct : သော့နှစ်ခုကိုနှိုင်းယှဉ်ရန်မည်သို့စိတ်ကြိုက်ပြုပြင်သည့် callback function ကို။
ဤလုပ်ဆောင်ချက်သည်မတူညီသောဒြပ်စင်များပါ 0 င်သောခင်းကျင်းမှုတစ်ခုရရှိပြီး ဒေါ်လာ array 1 တွင်သော့ချက်တန်ဖိုးအတွဲများကိုသာပြန်လည်ပေးလိမ့်မည်။ အကယ်. အဓိကတန်ဖိုးတွဲဖက်စုံတွဲတစ်တွဲသည် ဒေါ်လာ array2 တွင်ရှိလျှင်, သို့သော်သော့နှင့်တန်ဖိုးသည်တူညီသည်,
ကျွန်ုပ်တို့တွင် configure file နှစ်ခု, configure files နှင့် configure files နှစ်ခုအကြားကွဲပြားခြားနားမှုများကိုရှာဖွေတွေ့ရှိလိုပါကဆိုပါစို့ ။ configuration file ၏ contents သည်ဤပုံနှင့်တူလိမ့်မည်။
return [
'database' => 'mysql',
'host' => 'localhost',
'port' => 3306,
'username' => 'root',
'password' => 'secret',
];
return [
'database' => 'mysql',
'host' => 'localhost',
'port' => 3307, // changed
'username' => 'root',
'password' => 'new_secret', // changed
];
ဤ configuration files နှစ်ခုအကြားကွဲပြားခြားနားမှုများကိုရှာဖွေရန် array_diff_Usassoc () ကိုသုံးနိုင်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဤ configuration files နှစ်ခုကိုဖွင့်ပြီး၎င်းတို့၏ကွဲပြားခြားနားမှုများကို array_diff_UsocoC () ကိုအသုံးပြုခြင်းကိုနှိုင်းယှဉ်ကြည့်ပါ။ နှိုင်းယှဉ်မှုဖြစ်စဉ်တွင်ကျွန်ုပ်တို့သည်နှိုင်းယှဉ်ထားသောသော့များသည်တိကျမှန်ကန်ကြောင်းသေချာစေရန်ထုံးစံ key နှိုင်းယှဉ် function ကိုသတ်မှတ်လိမ့်မည်။ ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
// အဟောင်းနှင့်အသစ်သော configurations များကိုတင်ပါ
$config_old = include 'config_old.php';
$config_new = include 'config_new.php';
// Custom Key နှိုင်းယှဉ် function ကို
function compare_keys($key1, $key2) {
return strcmp($key1, $key2); // သော့များကိုအက္ခရာစဉ်နှိုင်းယှဉ်ကြည့်ပါ
}
// အသုံးပြု array_diff_uassoc configuration ကွဲပြားခြားနားမှုနှိုင်းယှဉ်
$differences = array_diff_uassoc($config_new, $config_old, 'compare_keys');
// output ကိုခြားနားချက်
echo "ပြောင်းလဲထားသော configuration ပစ္စည်းများအောက်ပါအတိုင်းဖြစ်သည်:\n";
print_r($differences);
?>
အထက်ပါကုဒ်ကိုဖွင့်ပြီးနောက်အောက်ပါ output ကိုကျွန်ုပ်တို့ရရှိမည်ဖြစ်သည်။
ပြောင်းလဲထားသော configuration ပစ္စည်းများအောက်ပါအတိုင်းဖြစ်သည်:
Array
(
[port] => 3307
[password] => new_secret
)
output မှမြင်တွေ့ရသည့်အတိုင်း port နှင့် password configuration ပစ္စည်းများပြောင်းလဲသွားသည်။ ၎င်းသည်ကျွန်ုပ်တို့မျှော်လင့်ထားသည့်အတိအကျဖြစ်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် configuration file တွင်အချို့သော URL ချိတ်ဆက်မှုများရှိနိုင်သည်။ ၎င်းကို M66.NET နှင့်၎င်း၏ဒိုမိန်းအမည်ကိုအစားထိုးရန်လိုအပ်နိုင်သည်။ Configuration Files များကိုနှိုင်းယှဉ်သောအခါမည်သို့အစားထိုးရမည်ကိုဥပမာတစ်ခုရှိသည်။
Configuration ဖိုင်တွင် URL နယ်ပယ်တစ်ခုရှိသည်ဟုယူဆလျှင်, ကျွန်ုပ်တို့သည်ထုံးစံလုပ်ဆောင်ချက်များမှတဆင့်နှိုင်းယှဉ်ခြင်းမပြုမီလုပ်ဆောင်နိုင်သည်။
<?php
// configuration ကိုတင်
$config_old = include 'config_old.php';
$config_new = include 'config_new.php';
// ထုံးစံဓလေ့ URL function ကိုအစားထိုး
function replace_url_domain($value) {
if (filter_var($value, FILTER_VALIDATE_URL)) {
// ပြန်လည်နေရာချ URL ဒိုမိန်းအမည်ဖြစ်သည် m66.net
$parsed_url = parse_url($value);
$new_url = str_replace($parsed_url['host'], 'm66.net', $value);
return $new_url;
}
return $value;
}
// 对配置进行域名ပြန်လည်နေရာချ处理
$config_old = array_map('replace_url_domain', $config_old);
$config_new = array_map('replace_url_domain', $config_new);
// Custom Key နှိုင်းယှဉ် function ကို
function compare_keys($key1, $key2) {
return strcmp($key1, $key2);
}
// အသုံးပြု array_diff_uassoc configuration ကွဲပြားခြားနားမှုနှိုင်းယှဉ်
$differences = array_diff_uassoc($config_new, $config_old, 'compare_keys');
// output ကိုခြားနားချက်
echo "ပြောင်းလဲထားသော configuration ပစ္စည်းများအောက်ပါအတိုင်းဖြစ်သည်:\n";
print_r($differences);
?>
Configuration files များကိုနှိုင်းယှဉ်သောအခါ URL domain names အားလုံးကို M66.net ဖြင့်အစားထိုးရန်သေချာစေခြင်းငှါ, ဒိုမိန်းအမည်ပြောင်းလဲမှုများကြောင့် configuration ကွဲပြားခြားနားမှုများကိုရှောင်ကြဉ်ရန်ဖြစ်သည်။
array_diff_Usassoc () function သည် array နှစ်ခုကိုနှိုင်းယှဉ်နိုင်သည့်အလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ configuration files များကွဲပြားခြားနားမှုများကိုရှာဖွေတွေ့ရှိသောအခါအပြောင်းအလဲများကိုထိထိရောက်ရောက်ရှာဖွေတွေ့ရှိနိုင်သည်။ Custom key key နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်အပိုဆောင်းအပြောင်းအလဲများကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒိုမိန်းအမည်အစားထိုးခြင်းစသည့်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ရှုပ်ထွေးသောလိုအပ်ချက်များကိုလည်းဖြေရှင်းနိုင်သည်။
Configuration files များတွင်အပြောင်းအလဲများကိုရှာဖွေတွေ့ရှိရန် array_diff_Diff_Usoc () function ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အသုံးပြုသည်။ သင့်တွင်မေးခွန်းများရှိပါကအခမဲ့မေးမြန်းပါ။