လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဆက်သွယ်မှု () encapsulation နှင့် MVC Framework တွင်အသုံးပြုခြင်း

ဆက်သွယ်မှု () encapsulation နှင့် MVC Framework တွင်အသုံးပြုခြင်း

M66 2025-05-27

MVP PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် MVC (Model-View-Controller) ဗိသုကာဗိသုကာဗိသုကာကိုကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ သင်၏လျှောက်လွှာ၏အရေးကြီးသောအပိုင်းတစ်ခုအနေဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုစီမံရန် Covere Connections ကိုစီမံရန် Constitabase connection များကိုစီမံရန်အတွက် Connection () function ကိုအသုံးပြုနည်း။

ဤဆောင်းပါးသည် MVC Framework ရှိ Connect () function ကို oncapsult မည်သို့ adapsate လုပ်ရမည်ကိုမိတ်ဆက်ပေးပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုအကောင်အထည်ဖော်ရန်မော်ဒယ်အလွှာတွင်မည်သို့ခေါ်ဆိုရမည်ကိုသရုပ်ပြပါလိမ့်မည်။ ပုံဥပမာအားလုံးရှိ URL ဒိုမိန်းများကို M66.net ဖြင့်အစားထိုးလိမ့်မည်။


1 ။ ဆက်သွယ်မှု () function ကို encapsultulate

ယေဘုယျအားဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှု၏ parameters များသည် host name, user name, password နှင့် database name ကိုပါ 0 င်သည်။ ဤပြင်ဆင်မှုများကိုလွယ်ကူစွာပြုပြင်ထိန်းသိမ်းရန်နှင့်ပြုပြင်မွမ်းမံရန်အတွက်အထူး configuration file တစ်ခုသို့ကျွန်ုပ်တို့ရေးနိုင်သည်။ ထို့နောက် database class တွင် connect () function ကို encapsulate ။

နမူနာကုဒ်:

 <?php
// config/database.php
return [
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'dbname' => 'test_db',
    'charset' => 'utf8mb4'
];
 <?php
// core/Database.php
class Database {
    private $connection;

    public function connect() {
        $config = require __DIR__ . '/../config/database.php';

        $dsn = "mysql:host={$config['host']};dbname={$config['dbname']};charset={$config['charset']}";
        try {
            $this->connection = new PDO($dsn, $config['username'], $config['password']);
            // ခြွင်းချက် mode ကိုသတ်မှတ်ပါ,Debug မှလွယ်ကူသည်
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            die("ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ: " . $e->getMessage());
        }
        return $this->connection;
    }
}

အထက်ဖော်ပြပါကုဒ်သည် PDO မှတစ်ဆင့်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးခြွင်းချက်များ၏ဖြစ်ရပ်တွင်အမှားအယွင်းများကိုအစီရင်ခံနိုင်သည်။


2 ။ Model အတွက်ဆက်သွယ်မှု () ကိုသုံးပါ

MVC တွင်မော်ဒယ်သည်ဒေတာများကိုကိုင်တွယ်ရန်တာ 0 န်ရှိသည်။ ဒေတာဘေ့စ် အတန်းကိုကျွန်ုပ်တို့ချက်ချင်းပို့ပြီး SQL operations များကိုလုပ်ဆောင်ရန် PDO ဆက်သွယ်မှုအရာဝတ်ထုကိုရယူရန် Connect () နည်းလမ်းကိုခေါ်ဆိုနိုင်သည်။

 <?php
// models/UserModel.php
require_once __DIR__ . '/../core/Database.php';

class UserModel {
    private $db;

    public function __construct() {
        $database = new Database();
        $this->db = $database->connect();
    }

    public function getUserById($id) {
        $stmt = $this->db->prepare("SELECT * FROM users WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_INT);
        $stmt->execute();
        return $stmt->fetch(PDO::FETCH_ASSOC);
    }
}

ခေါ်ဆိုမှုဥပမာ -

 <?php
// index.php သို့မဟုတ် controller အလယ်ပိုင်း
$userModel = new UserModel();
$user = $userModel->getUserById(1);
print_r($user);

3 ။ အပိုဆောင်းအကြံဥာဏ်

  • Singleton Mode Optimization <br> <br> သင်တောင်းဆိုသည့်အခါတိုင်းဒေတာဘေ့စ်ဆက်သွယ်မှုအသစ်ကိုဖန်တီးခြင်းကိုရှောင်ရှားရန် ဒေတာဘေ့စ ်ဆက်သွယ်မှုသည်ထူးခြားပြီးစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အတွက် Singleton Mode ကိုအကောင်အထည်ဖော်နိုင်သည်။

  • configuration security <br> ဒေတာဘေ့စ် configuration file ကိုအများပြည်သူဆိုင်ရာလမ်းညွှန်များတွင်နေရာချထားရန်နှင့်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုယိုစိမ့်မှုများကိုရှောင်ရှားရန်ခွင့်ပြုချက်ကာကွယ်ခြင်းကိုပြုလုပ်ရန်အကြံပြုသည်။

  • အမှားကိုင်တွယ်ဖြေရှင်းခြင်း ချွင်းချက်များကိုဖမ်းယူရန်အပြင်လွယ်ကူသောအွန်လိုင်းပြ troubl နာဖြေရှင်းခြင်းအတွက်အမှားမှတ်တမ်းကိုသင်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။


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

အထူး Connect () function ကို encapsulating ဖြင့်ဒေတာဘေ့စ် connection ကိုစီမံခန့်ခွဲခြင်းအားဖြင့် MVC ဗိသုကာဒီဇိုင်းအခြေခံမူများကိုလိုက်နာသောစံပြအလွှာတွင်ထည့်သွင်းခြင်းဖြင့်၎င်းကို MVC ဗိသုကာဒီဇိုင်းအခြေခံမူများကိုလိုက်နာသည်။ ၎င်းသည်ကုဒ်ဖွဲ့စည်းပုံကိုရှင်းရှင်းလင်းလင်းဖြစ်စေရုံသာမကဘဲဆက်လက်ထိန်းသိမ်းရန်လွယ်ကူစေသည်။