PHP somo la 95: Jinsi ya kutengeneza customer ORM
Katika somo hili uttakwend akujifunz ajinsi ambavyo utaweza kutengeneza simple ORM yakwako mwenyewe
PHP somo la 95: Jinsi ya kutengeneza customer ORM
Katika somo hili utajifunza jinsi ya kutengeneza ORM ya msingi kwa kutumia PHP na MySQL, ambayo itakuwezesha kufanya operesheni za CRUD (Create, Read, Update, Delete) kwa urahisi.
1. Kuandaa Database Connection
Kama ilivyo kwenye mfano wa awali, tunahitaji class ya Database ambayo itashughulikia connection na MySQL. Hii itakuwa ni Singleton pattern kama ilivyokuwa awali:
class Database {
private static $instance = null;
private $conn;
private function __construct() {
$this->conn = new mysqli("localhost", "root", "", "shop");
if ($this->conn->connect_error) {
die("Connection failed: " . $this->conn->connect_error);
}
}
public static function getInstance() {
if (!self::$instance) {
self::$instance = new Database();
}
return self::$instance;
}
public function getConnection() {
return $this->conn;
}
}
2. Kuunda Base Model Class
Hapa tunaunda class Model, ambayo inashughulikia CRUD operations kwa kutumia prepared statements ili kuepuka SQL Injection. Class hii ina methods za kufanya kazi na tables kwa kutumia jina la table kama parameter:
class Model {
protected $db;
protected $table;
public function __construct($table) {
$this->db = Database::getInstance()->getConnection();
$this->table = $table; // Dynamically set the table name
}
public function create($data) {
$columns = implode(", ", array_keys($data));
$placeholders = implode(", ", array_fill(0, count($data), "?"));
$stmt = $this->db->prepare("INSERT INTO {$this->table} ($columns) VALUES ($placeholders)");
$stmt->bind_param(str_repeat("s", count($data)), ...array_values($data));
return $stmt->execute();
}
public function all() {
$stmt = $this->db->prepare("SELECT * FROM {$this->table}");
$stmt->execute();
return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
}
}
Ufafanuzi wa Code:
Hapa tunatumia prepared statements ili kuhakikisha usalama wa SQL (kama kuepuka SQL injection), na pia tunatekeleza Object-Oriented Programming (OOP).
1. __construct($table)
public function __construct($table) {
$this->db = Database::getInstance()->getConnection();
$this->table = $table; // Dynamically set the table name
}
- __construct($table): Hii ni constructor ya class. Kila mara unapotengeneza instance ya class hii, constructor hii itaitwa. Inachukua parameter moja, $table, ambalo ni jina la table la MySQL unalotaka kufanya kazi nalo (kwa mfano, "users" au "customers").
- $this->db = Database::getInstance()->getConnection();: Hii inapata connection ya database kwa kutumia Database singleton pattern.
- $this->table = $table;: Hapa tunahifadhi jina la table ambalo limeletwa kwa constructor kwenye property ya class table.
2. create($data)
public function create($data) {
$columns = implode(", ", array_keys($data));
$placeholders = implode(", ", array_fill(0, count($data), "?"));
$stmt = $this->db->prepare("INSERT INTO {$this->table} ($columns) VALUES ($placeholders)");
$stmt->bind_param(str_repeat("s", count($data)), ...array_values($data));
return $stmt->execute();
}
- $columns = implode(", ", array_keys($data));: Hapa tunachukua keys za array ya $data, ambayo inawakilisha majina ya column kwenye database.
- $placeholders = implode(", ", array_fill(0, count($data), "?"));: Tunatengeneza placeholders kwa ajili ya prepared statements.
- $stmt = $this->db->prepare("INSERT INTO {$this->table} ($columns) VALUES ($placeholders)");: Hii inatengeneza prepared statement ya SQL.
- $stmt->bind_param(str_repeat("s", count($data)), ...array_values($data));: Inatenganisha values za $data na kuzifanya ziwe parameta ambazo zitashikiliwa na placeholders.
- return $stmt->execute();: Hatimaye, statement inatekelezwa kwa kutumia execute().
3. all()
public function all() {
$stmt ...Umeionaje Makala hii.. ?
Share On:
👉1 Simulizi za Hadithi Audio 👉2 Kitau cha Fiqh 👉3 Tafasiri ya Riyadh Swalihina 👉4 ai web app 👉5 Dua za Mitume na Manabii 👉6 Sira ya Mtume Muhammad (s.a.w)
Post zinazofanana:
PHP - somo la 45: Jinsi ya kutuma sms kwa kutumia PHP
Katika soko hili takwenda kujufunza jinsi ya kutuma sms kwa kutumia PHP. Hii itasaidia kama unataka kutuma OTP yaqni Onetime password
Soma Zaidi...PHP somo la 51: Jinsi ya kutumia consctuct na destruct function
Katika somo hili utakwenda kujifunza kazi na matumizi ya construct function na desctruct function kwenye OOP
Soma Zaidi...PHP - somo la 11: Jinsi ya kutuma tarifa zilizojazwa kwenye form
Katika somo hili utakwenda kujifunza jinsi ya kukusanya taarifa za watumiaji kwa kutumia html form.
Soma Zaidi...PHP - somo la 3: Maana ya variable na inavyoandika kwenye PHP
Katika somo hili utakwenda kujifunza kujusu PHP variable, maana yake na sheria za uandishi wa variable
Soma Zaidi...PHP somo la 100: Jinsi ya kutumia sql moja kwa moja kwenye ORM ya RedBeanPHP
Katika somo hili utakwend akujifunz ajinsi ya kuandika query ndani ya ORM. Hii inakupa uhuru wa kufanya kileunachotaka bila ya kuathiri usalama wa project
Soma Zaidi...PHP - somo la 36: Jinsi ya ku upload taarifa za mafaili kwenye database kw akutumia PHP
katika somo hili utajfunza kukusanya taarifa za mafaili. kisha ku upload hayo mafaili. kisha kuandika hizo taarifa za mafaii kwenye database
Soma Zaidi...