နောက်ခံစီမံခန့်ခွဲမှုစနစ်တွင် client ၏မူကွဲအချက်အလက်များကိုနားလည်ခြင်းသည်အခြေအနေများစွာတွင်အလွန်အသုံးဝင်သည်။ ဥပမာအားဖြင့်:
0 န်ဆောင်မှုခံယူသူသည်နောက်ဆုံးပေါ်ဗားရှင်းဟုတ်မဟုတ်ဆုံးဖြတ်ခြင်း,
Troubleshooting အတွက်မှတ်တမ်းများကိုမှတ်တမ်းတင်ခြင်း,
ကွဲပြားခြားနားသောဒေတာဖွဲ့စည်းပုံများကိုဗားရှင်းကွဲပြားခြားနားမှုများနှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ပါ။
Get_Client_Version ဟုခေါ်သော PHP နောက်ခံစီမံခန့်ခွဲမှုစနစ်တွင် client နောက်ခံစီမံခန့်ခွဲမှုစနစ်တွင် Get_Cletient_Version System တွင် Client Management System တွင်မည်သို့ကျင့်သုံးရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ဖောက်သည်ဗားရှင်းသတင်းအချက်အလက်များကိုယေဘုယျအားဖြင့် HTTP ခေါင်းစီးများသို့မဟုတ် parameters များအနေဖြင့် HTTP ခေါင်းစီးများ,
User-Agent: MyApp/2.3.1 (iOS)
သို့မဟုတ် header ကိုစိတ်ကြိုက်
X-Client-Version: 2.3.1
ကျွန်ုပ်တို့သည်ဤအချက်အလက်မှဗားရှင်းနံပါတ်ကိုထုတ်ယူနိုင်ပြီး၎င်းအပေါ် မူတည်. စီးပွားရေးဆိုင်ရာဆုံးဖြတ်ချက်ချနိုင်သည်။
We first define a common get_client_version function, which will give priority to obtaining version information from the X-Client-Version Header. မသတ်မှတ်ပါက အသုံးပြုသူကိုယ်စားလှယ် ထံမှခွဲခြမ်းစိတ်ဖြာခြင်းကိုကြိုးစားကြည့်ပါ။
/**
* client version နံပါတ်ကိုရယူပါ
*
* @return string|null
*/
function get_client_version(): ?string {
// စိတ်ကြိုက်ရည်ရွယ်ရန် ဦး စားပေး Header
$headers = getallheaders();
if (isset($headers['X-Client-Version'])) {
return trim($headers['X-Client-Version']);
}
// ကြိုးစားကြည့်ပါ User-Agent သုံးသပ်ကြည့်ရှုခြင်း
if (isset($_SERVER['HTTP_USER_AGENT'])) {
if (preg_match('/MyApp\/([\d\.]+)/', $_SERVER['HTTP_USER_AGENT'], $matches)) {
return $matches[1];
}
}
return null;
}
ထိပ်ဖျား: ရှေ့တန်း၏တိကျသောအကောင်အထည်ဖော်မှုအရပုံမှန်အသုံးအနှုန်းများကိုသင်ညှိနိုင်သည်။
ကျွန်ုပ်တို့သည် API interface / API / Dashboard ကို တီထွင်နေသည်ဆိုပါစို့။ Returned data format ကိုဆုံးဖြတ်ရန် client version ကိုကျွန်ုပ်တို့ဆုံးဖြတ်ရန်လိုအပ်သည်ဆိုပါစို့။
// dashboard.php
require_once 'utils.php'; // ယူဆချက် get_client_version ဤဖိုင်တွင်ရေးပါ
$version = get_client_version();
if ($version === null) {
http_response_code(400);
echo json_encode(['error' => 'client ဗားရှင်းကိုအသိအမှတ်မပြုနိုင်ပါ']);
exit;
}
// တရားစီရင်ဗက်
if (version_compare($version, '2.0.0', '<')) {
// ဒေတာဖွဲ့စည်းပုံ၏ရှေးဟောင်းဗားရှင်းသို့ပြန်သွားပါ
$response = [
'message' => 'အပြည့်အဝလုပ်ဆောင်နိုင်စွမ်းကိုရရန် client ကိုအဆင့်မြှင့်ပါ',
'data' => [],
'upgrade_url' => 'https://gitbox.net/app/update'
];
} else {
// ဒေတာဖွဲ့စည်းပုံ၏ဗားရှင်းအသစ်သို့ပြန်သွားပါ
$response = [
'message' => 'နောက်ဆုံးပေါ်ဗားရှင်းမှကြိုဆိုပါသည်',
'data' => [
'stats' => [/* စာရင်းအင်း */],
'notifications' => [/* အသိပေးချက်သတင်းအချက်အလက် */],
]
];
}
header('Content-Type: application/json');
echo json_encode($response);
ရှေ့ပြေးအဆုံးသည် header ကို Axios Request Comport Onceptor သို့ထည့်သွင်းသည့်အခါတိုင်းတောင်းဆိုသည့်အချိန်တိုင်းဗားရှင်းအချက်အလက်များကိုယူဆောင်လာသင့်သည်။
axios.defaults.headers.common['X-Client-Version'] = '2.3.1';
သို့မဟုတ်အသုံးပြုသူ - ကိုယ်စားလှယ် string ကိုတည်ဆောက်သည့်အခါ version နံပါတ်ထည့်ပါ။
navigator.userAgent = 'MyApp/2.3.1 (Android)';
Get_Client_Version_version function ကိုမှတစ်ဆင့် PHP နောက်ခံစနစ်တွင် 0 န်ဆောင်မှုခံယူသူ၏ဗားရှင်းအချက်အလက်များကိုအလွယ်တကူရယူနိုင်သည်။ ရှေ့ပိုင်းတွင်စည်းလုံးညီညွတ်သောဗားရှင်းသတင်းအချက်အလက်များကိုပေါင်းစည်းထားသည့်ဗားရှင်းသတင်းအချက်အလက်များကိုပေါင်းစပ်ပြီးပေါင်းစပ်ထားသောဤယန္တရားသည်စနစ်၏အားသာချက်များနှင့်ထိန်းသိမ်းမှုကိုများစွာမြှင့်တင်ပေးနိုင်သည်။
ဒီ function ကိုနမူနာယူနစ်စမ်းသပ်မှုတစ်ခုပေးဖို့လိုသလား။