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 Tafasiri ya Riyadh Swalihina 👉2 Kitabu cha Afya 👉3 Simulizi za Hadithi Audio 👉4 Madrasa kiganjani 👉5 Kitau cha Fiqh 👉6 web hosting
Post zinazofanana:
PHP - somo la 46: Nini maana ya cronjob na matumizi yake
Katika somo hili utajifunza kuhusu cronjob na matumizi yake kwenye PHP
Soma Zaidi...PHP - somo la 7: Jinsi ya kaundika function yakwako
Katika somo hili utakwenda kujifunza jinsi ya kuandika function yako mwenyewe yaani user defined function
Soma Zaidi...PHP - somo la 23: Jinsi ya kutumia condition statement kwenye database kwa kutumia PHP
Katika somo hili utakwenda kuona namna ya kutuia if else kwenye data zilizopo kwenye database kwa kutumia PHP
Soma Zaidi...PHP somo la 84: Maana ya JSON na sheria za kuandika faili la json
Katika somo hili utakwenda kujifunza kuhusu Maana ya JSON na sheria za kuandika faili la json
Soma Zaidi...PHP somo la 101: Advanced RedBeanPHP - Usimamizi wa Database, Usalama, na Ufanisi
Hili ni somo la mwisho katika mfululizo huu wa ORM, kupata ujuzi zaidi endelea kusoma ORM nyinginezo ambazo nimetangulia kuzitaja awali ya masomo haya.
Soma Zaidi...PHP BLOG - somo la 5: Jinsi ya kuandika code za PHP kwa ajili ya kuweka post kwenye blog
Katika ukurasa huu utakwenda kujifunz jinsi ya kuandika code za php kwa ajili ya kutuma post yetu kwenye blog.
Soma Zaidi...