နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PDOBASS ကို အသုံးပြု. PDOSTASTESS ကို အသုံးပြုရန် PDO ကိုအသုံးပြုလေ့ရှိသည်။ သို့သော်ကျွန်ုပ်တို့သည်စုံစမ်းမှု၏ပြောင်းလွယ်ပြင်လွယ်မှုကိုပိုမိုတိုးတက်စေလိုပါကရှုပ်ထွေးသောအချက်အလက်များပြုပြင်ခြင်းသို့မဟုတ်ထုံးစံအတိုင်းဒေတာအဆောက်အအုံများသို့ 0 င်ရောက်ခြင်းကိုထောက်ပံ့ခြင်းသို့မဟုတ်မြေပုံရေးဆွဲခြင်းကိုထောက်ပံ့ခြင်းစသည်တို့ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်လိုပါကပြင်ပစာကြည့်တိုက်များပိုမိုအဆင့်မြင့်သောစုံစမ်းမှုနည်းလမ်းများရရှိရန်အတွက်ပြင်ပစာကြည့်တိုက်များပေါင်းစပ်နိုင်သည်။
PDostatement :: Fetchobary များ နှင့်အတူပိုမိုပြောင်းလွယ်ပြင်လွယ်နှင့်အစွမ်းထက်သောစုံစမ်းမှုစနစ်ဖန်တီးနည်းကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။
FetchObject Method သည်ဒေတာဘေ့စ်မှအချက်အလက်များကိုထုတ်ယူသောအခါဒေတာအတန်းတစ်ခုစီကိုအရာဝတ်ထုဥပမာတစ်ခုစီထဲသို့ထည့်သွင်းရန်ခွင့်ပြုသည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'user', 'password');
$stmt = $pdo->query('SELECT * FROM users');
while ($user = $stmt->fetchObject()) {
echo $user->name . "\n";
}
?>
၎င်းသည်ရိုးရှင်းလွယ်ကူပြီးအသုံးပြုရလွယ်ကူသော်လည်းအိမ်ခြံမြေဆိုင်ရာအမည်ပြောင်းခြင်း, အလိုအလျောက်အမျိုးအစားပြောင်းလဲခြင်းသို့မဟုတ်ဆက်ဆံရေး မြေပုံ ,
ပြောင်းလွယ်ပြင်လွယ်အတွက် Atlas \ Mapper သို့မဟုတ်ပေါ့ပါးသော PHP-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data-data ဒါပေမယ့်ဒီနေရာမှာကျနော်တို့အဓိကအားဖြင့်ရိုးရှင်းတဲ့ဥပမာကိုသုံးပြီးအခြေခံ entity Mapper ကိုလျင်မြန်စွာရေးလိုက်ပါ။
အသုံးပြုသူများ ဇယားကိုကျွန်ုပ်တို့ရှာဖွေလိုသည်ဆိုပါစို့ ။
ပထမ ဦး စွာရိုးရှင်းသော entity အတန်းအစားကိုသတ်မှတ်ပါ။
<?php
// src/Entity/User.php
class User
{
public int $id;
public string $username;
public string $email;
}
?>
ထို့နောက်အခြေခံ Mapper ကိုရေးပါ။
<?php
// src/Mapper/UserMapper.php
class UserMapper
{
public static function map(PDOStatement $stmt): array
{
$results = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$user = new User();
$user->id = (int)$row['id'];
$user->username = $row['name']; // ဒေတာဘေ့စလယ်ကွင်းဖြစ်ပါတယ် name,မြေပုံ username
$user->email = $row['email'];
$results[] = $user;
}
return $results;
}
}
?>
လျှောက်လွှာတွင်ခေါ်ဆိုပါ။
<?php
require 'src/Entity/User.php';
require 'src/Mapper/UserMapper.php';
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'user', 'password');
$stmt = $pdo->query('SELECT id, name, email FROM users');
$users = UserMapper::map($stmt);
foreach ($users as $user) {
echo $user->username . " <" . $user->email . ">\n";
}
?>
ဤနည်းအားဖြင့်ဒေတာဘေ့စ်လယ်ကွင်းများသည်အတန်းအစား attribute အမည်များနှင့်ကွဲပြားလျှင်ပင်သူတို့သည်၎င်းတို့နှင့်ကိုက်ညီနိုင်ပြီးအဆင့်မြင့်ယုတ္တိဗေဒကိုအလွယ်တကူထည့်သွင်းနိုင်သည် (ဥပမာပြောင်းလဲခြင်း,
သင်၏စီမံကိန်းသည်အတော်အတန်ကြီးမားပါကဤအတန်းများကိုစီမံရန်တေးဂီတကိုအသုံးပြုခြင်းကဲ့သို့သော PSR-4 စံသတ်မှတ်ချက်ကိုအလိုအလျောက်ဖွင့်ရန်အကြံပြုသည် ။
composer.json အတွက်ထည့်ပါ:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
ထို့နောက် run:
composer dump-autoload
ထို့နောက်သင်ဤကဲ့သို့သော PHP ဖိုင်တွင်၎င်းကိုသုံးနိုင်သည်။
<?php
require 'vendor/autoload.php';
use App\Entity\User;
use App\Mapper\UserMapper;
// ...အထက်တွင်တူညီသောကုဒ်
?>
မေးမြန်းရမည့်အချက်အလက်များ၏အစိတ်အပိုင်းတစ်ခုသည်ဒေတာဘေ့စ်မှဆင်းသက်လာပြီးအစိတ်အပိုင်းများကိုအဝေးမှဖြည့်စွက်ရန်လိုအပ်သည် ။
<?php
function fetchAdditionalData(int $userId): array
{
$json = file_get_contents("https://gitbox.net/api/userinfo/$userId");
return json_decode($json, true);
}
foreach ($users as $user) {
$extraData = fetchAdditionalData($user->id);
$user->profile_picture = $extraData['profile_picture'] ?? null;
}
?>
ဤနည်းအားဖြင့်ဒေတာဘေ့စ် + ပြင်ပ interface ၏ဒေတာပေါင်းစည်းမှုသည်အလွန်သဘာဝကျပြီးအစွမ်းထက်လာသည်။