လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> backgression system တွင် get_client_version_version ကိုအသုံးပြုခြင်း

backgression system တွင် get_client_version_version ကိုအသုံးပြုခြင်း

gitbox 2025-05-06

နောက်ခံစီမံခန့်ခွဲမှုစနစ်တွင် client ၏မူကွဲအချက်အလက်များကိုနားလည်ခြင်းသည်အခြေအနေများစွာတွင်အလွန်အသုံးဝင်သည်။ ဥပမာအားဖြင့်:

  • 0 န်ဆောင်မှုခံယူသူသည်နောက်ဆုံးပေါ်ဗားရှင်းဟုတ်မဟုတ်ဆုံးဖြတ်ခြင်း,

  • Troubleshooting အတွက်မှတ်တမ်းများကိုမှတ်တမ်းတင်ခြင်း,

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

Get_Client_Version ဟုခေါ်သော PHP နောက်ခံစီမံခန့်ခွဲမှုစနစ်တွင် client နောက်ခံစီမံခန့်ခွဲမှုစနစ်တွင် Get_Cletient_Version System တွင် Client Management System တွင်မည်သို့ကျင့်သုံးရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ client version သတင်းအချက်အလက်ဆိုတာဘာလဲ။

ဖောက်သည်ဗားရှင်းသတင်းအချက်အလက်များကိုယေဘုယျအားဖြင့် HTTP ခေါင်းစီးများသို့မဟုတ် parameters များအနေဖြင့် HTTP ခေါင်းစီးများ,

 User-Agent: MyApp/2.3.1 (iOS)

သို့မဟုတ် header ကိုစိတ်ကြိုက်

 X-Client-Version: 2.3.1

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

2 ။ get_client_version function ကိုသတ်မှတ်ပါ

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;
}

ထိပ်ဖျား: ရှေ့တန်း၏တိကျသောအကောင်အထည်ဖော်မှုအရပုံမှန်အသုံးအနှုန်းများကိုသင်ညှိနိုင်သည်။

3 ။ ဒီ function ကိုနောက်ခံ Controller မှာသုံးပါ

ကျွန်ုပ်တို့သည် 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);

4 ။ ရှေ့အဆုံးနှင့်အတူပူးပေါင်းဆောင်ရွက်ရန်ဘယ်လို

ရှေ့ပြေးအဆုံးသည် header ကို Axios Request Comport Onceptor သို့ထည့်သွင်းသည့်အခါတိုင်းတောင်းဆိုသည့်အချိန်တိုင်းဗားရှင်းအချက်အလက်များကိုယူဆောင်လာသင့်သည်။

 axios.defaults.headers.common['X-Client-Version'] = '2.3.1';

သို့မဟုတ်အသုံးပြုသူ - ကိုယ်စားလှယ် string ကိုတည်ဆောက်သည့်အခါ version နံပါတ်ထည့်ပါ။

 navigator.userAgent = 'MyApp/2.3.1 (Android)';

5 ။ အကျဉ်းချုပ်

Get_Client_Version_version function ကိုမှတစ်ဆင့် PHP နောက်ခံစနစ်တွင် 0 န်ဆောင်မှုခံယူသူ၏ဗားရှင်းအချက်အလက်များကိုအလွယ်တကူရယူနိုင်သည်။ ရှေ့ပိုင်းတွင်စည်းလုံးညီညွတ်သောဗားရှင်းသတင်းအချက်အလက်များကိုပေါင်းစည်းထားသည့်ဗားရှင်းသတင်းအချက်အလက်များကိုပေါင်းစပ်ပြီးပေါင်းစပ်ထားသောဤယန္တရားသည်စနစ်၏အားသာချက်များနှင့်ထိန်းသိမ်းမှုကိုများစွာမြှင့်တင်ပေးနိုင်သည်။

ဒီ function ကိုနမူနာယူနစ်စမ်းသပ်မှုတစ်ခုပေးဖို့လိုသလား။