configuration synchronization tools များကိုတီထွင်သောအခါ configuration arrays နှစ်ခုကိုနှိုင်းယှဉ်ရန်နှင့်၎င်းတို့အကြားခြားနားချက်များကိုရှာဖွေရန်ထိရောက်သောနည်းလမ်းတစ်ခုလိုအပ်သည်။ PHP သည်အလွန်အသုံးဝင်သော function arraiff_UsassoC () ကိုထောက်ပံ့ပေးနိုင်သည်။ ၎င်းသည် array နှစ်ခုကိုနှိုင်းယှဉ်ရန်သာမကနှိုင်းယှဉ်လိုက်သည့်အခါခလုတ်များ၏နှိုင်းယှဉ်ချက်များ၏နှိုင်းယှဉ်ချက်စည်းမျဉ်းများကိုလည်းစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
ဤဆောင်းပါးတွင်ထိရောက်သော configuration synchronization tool ကိုတည်ဆောက်ရန် array_diff_Usassoc () function ကိုမည်သို့အသုံးပြုရမည်ကိုဆွေးနွေးပါမည်။
array_diff_Usassoc () function ကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော array များနှင့်နှိုင်းယှဉ်ရန်နှင့် Custom Key_Compare_Func.func ကိုအခြေခံသည့်ခြားနားချက်ကိုရှာဖွေရန်အသုံးပြုသည်။
array array_diff_uassoc ( array $array1 , array $array2 [, array $... ] , callable $key_compare_func )
array1 : ပထမဆုံးခင်းကျင်း
Array2 : ဒုတိယ array
key_compare_function : Array keys ကိုနှိုင်းယှဉ်ခြင်းအတွက် callback function ကို
ဤလုပ်ဆောင်ချက်သည်ကွဲပြားခြားနားမှုများပါ 0 င ် သောကွဲပြားခြားနားမှုများ, i.e. elements များပါဝင်သည် ။
ကျွန်ုပ်တို့၏ရည်မှန်းချက်မှာ configuration files နှစ်ခု (arrays) နှစ်ခုကိုနှိုင်းယှဉ်နိုင်သည့် configuration synchronization synchronization tool ကိုဖန်တီးရန်နှင့်သူတို့၏ကွဲပြားခြားနားမှုများကိုရှာဖွေရန်ဖြစ်သည်။ ဤလုပ်ငန်းကိုပြီးမြောက်စေရန်ကျွန်ုပ်တို့ array_diff_UAST_UAASTIOR () ကိုသုံးနိုင်သည်။ ပထမ ဦး စွာသင် configuration files နှစ်ခုလိုအပ်တယ်, တစ်ခုမှာလက်ရှိ configuration (configuration file a) နှင့်အခြားတစ်ခုမှာပစ်မှတ် configuration (configuration file b) ဖြစ်သည်။
အောက်ပါအတိုင်း Configuration Array နှစ်ခုရှိသည်ဆိုပါစို့:
$configA = [
'host' => 'localhost',
'port' => 8080,
'database' => 'mydb',
'username' => 'admin'
];
$configB = [
'host' => 'localhost',
'port' => 8080,
'database' => 'mydb',
'username' => 'root'
];
ဒီနှစ်ခု array နှစ်ခုကိုနှိုင်းယှဉ်ချင်တယ်, ပြီးတော့သူတို့အကြားခြားနားချက်များကိုရှာဖွေချင်တယ်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည် configa ရှိ အဓိကတန်ဖိုးများကိုနှိုင်းယှဉ်ကြည့်ရှုရန် array_diff_Usassoc () ကိုသုံးနိုင်သည်။
configuration arrays များကိုနှိုင်းယှဉ်သောအခါသော့များကိုနှိုင်းယှဉ်ခြင်းသည်အလွန်အရေးကြီးသည်။ သော့များနှင့်နှိုင်းယှဉ်လျှင်အမှန်တကယ်လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်ရန်အတွက်ကျွန်ုပ်တို့သည်စိတ်ကြိုက်အဓိကနှိုင်းယှဉ်ခြင်း function ကိုပေးရန်လိုအပ်သည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အမှုအား 0 င်ခွင့်သို့မဟုတ်အထူးနှိုင်းယှဉ်မှုပြုလုပ်လိုပါကနှိုင်းယှဉ်ခြင်း function ကိုစိတ်ကြိုက်ပြုပြင်နိုင်သည်။
function keyCompare($key1, $key2) {
return strcmp($key1, $key2); // ပုံမှန် string ကိုနှိုင်းယှဉ်ခြင်း
}
နောက်တစ်ခုက configuration arrays နှစ်ခုကိုနှိုင်းယှဉ်ရန်နှင့်ကွဲပြားခြားနားမှုများကိုရှာဖွေရန် array_diff_Ussoc () ကို သုံးနိုင်သည်။
$differences = array_diff_uassoc($configA, $configB, 'keyCompare');
// output ကိုခြားနားချက်
print_r($differences);
Array
(
[username] => admin
)
အပေါ်က ပြထားတဲ့အတိုင်း array_diff_Usassoc () username key ပါတဲ့ခြားနားချက်ကိုပြန်ပို့လိုက်တယ် ။
အမှန်တကယ် configuration synchronization tool တွင်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားမှုများကိုရှာဖွေရန်သာမကကွဲပြားခြားနားမှုများအပေါ် အခြေခံ. နောက်ထပ်စစ်ဆင်ရေးများပြုလုပ်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, သင်သည်ခြားနားချက်ကိုပစ်မှတ်စနစ်နှင့်တစ်ပြိုင်တည်းချိန်ကိုက်နိုင်သည်။ သို့မဟုတ်အချို့သောပုံစံဖြင့်ခြားနားချက်ကို output လုပ်နိုင်သည်။
Configa ရှိကွဲပြားခြားနားမှုများကို Setchiga လုပ်ရန်လိုအပ်သည်ဆိုပါစို့။
foreach ($differences as $key => $value) {
// ပစ်မှတ် configuration ကို update
$configB[$key] = $value;
// ထပ်တူပြုခြင်း,ဥပမာ configuration file ကို update လုပ်ပါ
// ဤနေရာတွင်သင်ဒေတာဘေ့စ်ကို update လုပ်နိုင်ပါတယ်、configuration ဖိုင်များစသည်တို့
echo "Updated $key to $value in configB\n";
}
ဤကုဒ်ကိုကျွန်ုပ်တို့ဖွင့်လျှင်, output ကိုဖြစ်လိမ့်မည်။
Updated username to admin in configB
ဆိုလိုသည်မှာကျွန်ုပ်တို့သည် configuration file တစ်ခု၏ကွဲပြားခြားနားမှုများကိုထပ်တူပြုခြင်းကိုဆိုလိုသည်။
အချို့သော configurations များတွင် URL သည်ဒိုမိန်းအမည်များပါ 0 င်နိုင်သည်။ ဤအပိုင်းသည်ကျွန်ုပ်တို့၏ထပ်တူပြုခြင်းကိရိယာတွင်အလွန်အသုံးဝင်သည်။ ကျွန်ုပ်တို့တွင် URLs များပါ 0 င်သည့် configuration item ရှိသည်ဆိုပါစို့။ URLs ၏ domain name ကို M66.net သို့ပြောင်းလဲလိုကြသည်ဆိုပါစို့။
$configA = [
'api_url' => 'https://oldsite.com/api/v1/',
'web_url' => 'https://oldsite.com/home'
];
function replaceDomain($url) {
return preg_replace('/https?:\/\/[a-z0-9.-]+/', 'https://m66.net', $url);
}
foreach ($configA as $key => $value) {
if (strpos($value, 'http') !== false) {
$configA[$key] = replaceDomain($value);
}
}
print_r($configA);
Array
(
[api_url] => https://m66.net/api/v1/
[web_url] => https://m66.net/home
)
အပေါ်ကပြထားတဲ့အတိုင်း အစားထိုးတာ 0 န်ဟာ domain name ကို URL မှာအစားထိုးပြီး M66.net ကိုပြောင်းလဲစေတယ်။
Array_Diff_UAAST_AASSOC () function မှတဆင့်ကျွန်ုပ်တို့သည် configuration arrays နှစ်ခုကိုထိရောက်စွာနှိုင်းယှဉ်နိုင်ပြီးကွဲပြားခြားနားမှုများကိုရှာဖွေနိုင်သည်။ ထုံးစံ key နှိုင်းယှဉ် function ကို၏အကူအညီဖြင့်သင်ပြောင်းလွယ်ပြင်လွယ်နှင့် process keys ကိုနှိုင်းယှဉ်နိုင်ပါတယ်။ ကွဲပြားခြားနားမှုကွဲပြားမှုများနှင့် URL domain name အစားထိုးခြင်းကဲ့သို့သောအမှန်တကယ် configuration operations အချို့ကိုပေါင်းစပ်ပြီး URL domain name name အစားထိုးခြင်းများပြုလုပ်နိုင်သည်။
ဤလုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်ရန် array_diff_Usociassoc () function ကိုမည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးကဤဆောင်းပါးသည်သင့်အားပိုမိုနားလည်ရန်ကူညီနိုင်သည်။