လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Multi-database configuration file တွင် dynamurce call () Call Call () မည်သို့ခေါ်ဆိုရမည်နည်း

Multi-database configuration file တွင် dynamurce call () Call Call () မည်သို့ခေါ်ဆိုရမည်နည်း

M66 2025-05-31

နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်ကြီးမားသော applications သို့မဟုတ် microssvice ဗိသုကာများ၌ဒေတာဘေ့စ်မျိုးစုံနှင့်ဆက်ဆံရာတွင်အခြေအနေကိုကျွန်ုပ်တို့ရင်ဆိုင်နေရသည်။ ဤဒေတာဘေ့စ်များသည်မတူညီသောစီးပွားရေး module များနှင့်သက်ဆိုင်သည်သို့မဟုတ်ကွဲပြားခြားနားသောဆာဗာများပေါ်တွင်ချထားနိုင်သည်။ ဤဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စီမံခန့်ခွဲနိုင်ရန်အတွက် Configuration form ကို Configuration file မှတဆင့် dacturation file မှတဆင့် dvonce ဟုခေါ်ဆိုနိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင်ဤအင်္ဂါရပ်ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ Multi-Database configuration files များ၏ဖွဲ့စည်းတည်ဆောက်ပုံဒီဇိုင်း

ပထမ ဦး စွာကျွန်ုပ်တို့သည်မတူညီသောဒေတာဘေ့စ်များ၏ဆက်သွယ်မှုအချက်အလက်များကိုသိမ်းဆည်းရန်ကောင်းမွန်သောစနစ်တကျပြင်ဆင်ထားသော configuration file တစ်ခုကိုဒီဇိုင်းပြုလုပ်ရန်လိုအပ်သည်။ လွယ်ကူသောစာဖတ်ခြင်းနှင့်စီမံခန့်ခွဲမှုအတွက် PHP Array သို့မဟုတ် JSON format ကိုအသုံးပြုရန်အကြံပြုသည်။ PHP arrays ကို configuration အဖြစ် အသုံးပြု. ဥပမာတစ်ခု -

 // db_config.php
return [
    'main_db' => [
        'host' => '127.0.0.1',
        'dbname' => 'main_database',
        'user' => 'root',
        'password' => 'password',
    ],
    'analytics_db' => [
        'host' => '192.168.1.100',
        'dbname' => 'analytics',
        'user' => 'analytics_user',
        'password' => 'secure_pass',
    ],
];

2 ။ ဒေတာဘေ့စ connection function ကို encapsult

Code Rusability နှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေရန်ကျွန်ုပ်တို့သည်ဘုံဒေတာဘေ့စ် connection function ကို oncapsulate လုပ်နိုင်ပြီး datsa များကို parameters များကိုဖြတ်သန်းခြင်းဖြင့်ကွဲပြားခြားနားသောဒေတာဘေ့စ်များကိုချိတ်ဆက်နိုင်သည်။

 // db_connect.php
function connect($dbKey) {
    $config = include 'db_config.php';
    
    if (!isset($config[$dbKey])) {
        throw new Exception("Database configuration for '{$dbKey}' not found.");
    }

    $db = $config[$dbKey];

    $dsn = "mysql:host={$db['host']};dbname={$db['dbname']};charset=utf8mb4";

    try {
        $pdo = new PDO($dsn, $db['user'], $db['password'], [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        ]);
        return $pdo;
    } catch (PDOException $e) {
        error_log("Database connection error: " . $e->getMessage());
        throw new Exception("Could not connect to the database.");
    }
}

3 ။ Dynamic ခေါ်ဆိုမှုဥပမာများ

စီးပွားရေးဆိုင်ရာယုတ္တိဗေဒတွင်ဆက်သွယ်မှုကိုအလွယ်တကူရယူရန်သက်ဆိုင်ရာဒေတာဘေ့စ် configuration keys များကိုသာဖြတ်သန်းရန်လိုအပ်သည်။

 require 'db_connect.php';

try {
    $mainDb = connect('main_db');
    $analyticsDb = connect('analytics_db');

    // အသုံးပြု $mainDb သို့မဟုတ် $analyticsDb ဒေတာဘေ့စစစ်ဆင်ရေးလုပ်ဆောင်ပါ
    $stmt = $analyticsDb->query('SELECT COUNT(*) as total FROM page_views');
    $result = $stmt->fetch();

    echo "စုစုပေါင်းစာမျက်နှာလည်ပတ်မှု:" . $result['total'];

} catch (Exception $e) {
    echo "အမှား:" . $e->getMessage();
}

4 ။ အဆင့်မြင့်အကြံပြုချက်များ

  1. cache connection starty များ - ဒေတာဘေ့စ်နှင့်ထပ်ခါတလဲလဲဆက်သွယ်မှုများကိုရှောင်ရှားရန် Static variable များကိုသို့မဟုတ် singleton mode ကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။

  2. configure encryption နှင့် Security : Database configuration file ကိုခွင့်ပြုချက်ဖြင့်အပြည့်အ 0 ထိန်းချုပ်သင့်သည်။ လိုအပ်ပါကအထိခိုက်မခံသောအချက်အလက်များကိုစာဝှက်စနစ်ဖြင့်သိမ်းဆည်းထားနိုင်သည်။

  3. သစ်ထုတ်လုပ်ခြင်းနှင့်အမှားကိုင်တွယ်ခြင်း - နောက်ပိုင်းခြေရာခံခြင်းနှင့်ပြုပြင်ထိန်းသိမ်းမှုအတွက်အမှားမှတ်တမ်းကိုမှတ်တမ်းတင်ခြင်းအားမှတ်တမ်းတင်ပါ။

  4. Configuration Center Integration : Microssylicle ဗိသုကာပညာတွင် databasevice configurations များကို https://m66.net/config-Comper မှတစ်ဆင့် Unify Managements နှင့် Hot update များကဲ့သို့သောဗဟိုစီမံခန့်ခွဲမှုစင်တာစီမံခန့်ခွဲနိုင်သည်။

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

configuration files များကိုအသုံးပြုခြင်းနှင့် ချိတ်ဆက်မှု function ကိုဆက်လက်ခေါ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပြောင်းလွယ်ပြင်လွယ်။ စည်းလုံးညီညွတ်သောဒေတာဘေ့စ်ဆက်သွယ်မှုစီမံခန့်ခွဲမှုများကိုရရှိနိုင်ပါသည်။ ထိုသို့သောဒီဇိုင်းသည်စနစ်ဖွဲ့စည်းပုံကိုရှင်းလင်းရုံသာမကအနာဂတ်တိုးချဲ့ခြင်းအတွက်အုတ်မြစ်ချသည်။ အမှန်တကယ်စီမံကိန်းများတွင်စီမံကိန်းလိုအပ်ချက်များအပေါ် အခြေခံ. သင့်လျော်သောဖွဲ့စည်းတည်ဆောက်ပုံနှင့်အကောင်အထည်ဖော်ခြင်းနည်းလမ်းကိုရွေးချယ်ခြင်းသည်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်စနစ်တည်ငြိမ်မှုကိုတိုးတက်စေရန်အတွက်သော့ချက်ဖြစ်သည်။