MVP PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် MVC (Model-View-Controller) ဗိသုကာဗိသုကာဗိသုကာကိုကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ သင်၏လျှောက်လွှာ၏အရေးကြီးသောအပိုင်းတစ်ခုအနေဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုစီမံရန် Covere Connections ကိုစီမံရန် Constitabase connection များကိုစီမံရန်အတွက် Connection () function ကိုအသုံးပြုနည်း။
ဤဆောင်းပါးသည် MVC Framework ရှိ Connect () function ကို oncapsult မည်သို့ adapsate လုပ်ရမည်ကိုမိတ်ဆက်ပေးပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုအကောင်အထည်ဖော်ရန်မော်ဒယ်အလွှာတွင်မည်သို့ခေါ်ဆိုရမည်ကိုသရုပ်ပြပါလိမ့်မည်။ ပုံဥပမာအားလုံးရှိ URL ဒိုမိန်းများကို M66.net ဖြင့်အစားထိုးလိမ့်မည်။
ယေဘုယျအားဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှု၏ 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 မှတစ်ဆင့်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးခြွင်းချက်များ၏ဖြစ်ရပ်တွင်အမှားအယွင်းများကိုအစီရင်ခံနိုင်သည်။
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);
Singleton Mode Optimization <br> <br> သင်တောင်းဆိုသည့်အခါတိုင်းဒေတာဘေ့စ်ဆက်သွယ်မှုအသစ်ကိုဖန်တီးခြင်းကိုရှောင်ရှားရန် ဒေတာဘေ့စ ်ဆက်သွယ်မှုသည်ထူးခြားပြီးစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အတွက် Singleton Mode ကိုအကောင်အထည်ဖော်နိုင်သည်။
configuration security <br> ဒေတာဘေ့စ် configuration file ကိုအများပြည်သူဆိုင်ရာလမ်းညွှန်များတွင်နေရာချထားရန်နှင့်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုယိုစိမ့်မှုများကိုရှောင်ရှားရန်ခွင့်ပြုချက်ကာကွယ်ခြင်းကိုပြုလုပ်ရန်အကြံပြုသည်။
အမှားကိုင်တွယ်ဖြေရှင်းခြင်း ချွင်းချက်များကိုဖမ်းယူရန်အပြင်လွယ်ကူသောအွန်လိုင်းပြ troubl နာဖြေရှင်းခြင်းအတွက်အမှားမှတ်တမ်းကိုသင်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
အထူး Connect () function ကို encapsulating ဖြင့်ဒေတာဘေ့စ် connection ကိုစီမံခန့်ခွဲခြင်းအားဖြင့် MVC ဗိသုကာဒီဇိုင်းအခြေခံမူများကိုလိုက်နာသောစံပြအလွှာတွင်ထည့်သွင်းခြင်းဖြင့်၎င်းကို MVC ဗိသုကာဒီဇိုင်းအခြေခံမူများကိုလိုက်နာသည်။ ၎င်းသည်ကုဒ်ဖွဲ့စည်းပုံကိုရှင်းရှင်းလင်းလင်းဖြစ်စေရုံသာမကဘဲဆက်လက်ထိန်းသိမ်းရန်လွယ်ကူစေသည်။