မျက်မှောက်ခေတ် web applications များတွင် XML ဖိုင်များကို configuration, data လဲလှယ်ခြင်းနှင့်မြဲမြဲသိုလှောင်ရန်အတွက်အသုံးပြုလေ့ရှိသည်။ မကြာခဏပြောင်းလဲထားသော XML ဖိုင်များအတွက်ဗားရှင်းထိန်းချုပ်မှုယန္တရားကိုအကောင်အထည်ဖော်ခြင်းကအချက်အလက်စီမံခန့်ခွဲမှု၏ယုံကြည်စိတ်ချရမှုကိုများစွာတိုးတက်စေနိုင်သည်။ XML_SESS_ENDOST_ENDOFT_DECTLE_Handler () သည် XML namespace ကြေငြာချက်၏အဆုံးတွင် callback processing ပြုလုပ်ရန်ခွင့်ပြုထားသော SAX-style xml parsing လုပ်ဆောင်ချက်များကိုအပြည့်အဝ sax ပုံစံ xml parsing farmsing farmsing farmsing farmsing fullsing farmsing farmsing factiv များကိုပြုလုပ်ပေးသည်။ ဤယန္တရားသည် XML ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာပြောင်းလဲမှုများကိုလိမ္မာပါးနပ်စွာအသုံးပြုနိုင်ပြီးအခြေခံဗားရှင်းထိန်းချုပ်မှုကိုရရှိစေသည်။
ဤလုပ်ဆောင်ချက်သည်ခွဲခြမ်းစိတ်ဖြာကြေငြာချက်၏အဆုံးကိုခွဲခြမ်းစိတ်ဖြာခြင်းကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ callback function ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ရှုပ်ထွေးသော XML စာရွက်စာတမ်းများကိုအမည်များများစွာဖြင့်ကိုင်တွယ်သောအခါ၎င်းသည်အသုံးဝင်သည်။ ဗားရှင်းထိန်းချုပ်မှုအတွက်ဖွဲ့စည်းပုံသတိထားမိသည့်အချက်များကိုလည်းဖွဲ့စည်းထားသည်။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
bool xml_set_end_namespace_decl_handler(XMLParser $parser, callable $handler)
$ Parser - XML_Parser_Create () မှဖန်တီးထားသော parser အရင်းအမြစ်တစ်ခု။
$ handler : namespace ၏အဆုံးကိုကိုင်တွယ်သော callback function ကို။
XML ဖိုင်များ၏ version control function ကိုအကောင်အထည်ဖော်ရန်အတွက် XML_set_Ennamnonface_Decl_Handler () ကိုသုံးနိုင်သည်။
အောင်မြင်ရန်သော့ချက်အချက်များဒီမှာ -
XML parser ကိုစတင်ပါ
namespace ၏အစနှင့်အဆုံးအတွက်အပြောင်းအလဲနဲ့ function ကိုသတ်မှတ်ပါ
ဖွဲ့စည်းပုံပြောင်းလဲမှုတွင် "ဗားရှင်း snapshot" မှတ်တမ်းတင်
သိုလှောင်မှုသိမ်းဆည်းရန် Snapshot ဒေတာများကိုသိမ်းဆည်းရန် (ဒေတာဘေ့စ်သို့မဟုတ်ဖိုင်စနစ်)
<?php
$xmlData = file_get_contents('https://gitbox.net/xml/sample.xml');
$parser = xml_parser_create_ns("UTF-8", ":");
$versions = [];
$currentVersion = [];
$versionCount = 0;
// အဆိုပါ namespace ၏အဆုံးမှာ processing function ကို
function endNsHandler($parser, $prefix)
{
global $versionCount, $currentVersion, $versions;
// တစ်ခုချင်းစီကို namespace ၏အဆုံးမှာ snapshots မှတ်တမ်းတင်
$versionCount++;
$versions["version_$versionCount"] = $currentVersion;
$currentVersion = []; // လက်ရှိဗားရှင်းဒေတာကို reset
}
// Element Start Event ကိုထုတ်ယူခြင်း(ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာသတင်းအချက်အလက်များကိုစုဆောင်းရန်အသုံးပြုခဲ့သည်)
function startElement($parser, $name, $attrs)
{
global $currentVersion;
$currentVersion[] = [
'element' => $name,
'attributes' => $attrs
];
}
// အပြောင်းအလဲနဲ့လုပ်ဆောင်ချက်များကိုတက် setting
xml_set_element_handler($parser, "startElement", null);
xml_set_end_namespace_decl_handler($parser, "endNsHandler");
// သုံးသပ်ကြည့်ရှုခြင်း XML အချက်များ
if (!xml_parse($parser, $xmlData, true)) {
die("XML Error: " . xml_error_string(xml_get_error_code($parser)));
}
// output ဗားရှင်းသတင်းအချက်အလက်
foreach ($versions as $version => $data) {
echo "=== $version ===\n";
foreach ($data as $node) {
echo "Element: {$node['element']}, Attributes: " . json_encode($node['attributes']) . "\n";
}
}
xml_parser_free($parser);
?>
ဤဖွဲ့စည်းပုံ - သတိထားမိသည့်ထိန်းချုပ်မှုအစီအစဉ်ကိုကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုနိုင်သည်။
configuration ဖိုင်ကို version backup နှင့် recovery
XML အကြောင်းအရာ Multi-user concentative Editing ၏ပ conflict ိပက်ခကိုရှာဖွေခြင်း
စာရွက်စာတမ်း format ပြောင်းလဲမှုများအလိုအလျောက်ခြေရာခံ
XML_SET_END_ENDOPT_ENDPACDS_DECL_Handler ()) , PHP developer များက XML ဖိုင်ဖွဲ့စည်းပုံကိုပြင်ပစာကြည့်တိုက်များအသုံးမပြုဘဲ XML ဖိုင်ဖွဲ့စည်းပုံကိုကြည့်ရှုနိုင်ပြီးအခြေခံဗားရှင်းထိန်းချုပ်မှုယုတ္တိဗေဒကိုအကောင်အထည်ဖော်နိုင်သည်။ Git အနေဖြင့်ရှုပ်ထွေးပြီးအပြည့်အဝမပြည့်စုံသော်လည်းပေါ့ပါးသောစနစ်များတွင်ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာပြောင်းလဲမှုမှတ်တမ်းတင်ခြင်းနှင့်အကြောင်းအရာပြန်လည်ထူထောင်ခြင်းစသည့်လိုအပ်ချက်များကိုကိုင်တွယ်ရန်လုံလောက်သည်။
ငါ interface သို့မဟုတ် database သိုလှောင်မှုဗားရှင်းနှင့်အတူသင့်ကိုကူညီရန်လိုအပ်ပါသလား?