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 web hosting 👉2 Sira ya Mtume Muhammad (s.a.w) 👉3 Dua za Mitume na Manabii 👉4 Bongolite - Game zone - Play free game 👉5 Kitau cha Fiqh 👉6 Simulizi za Hadithi Audio
Post zinazofanana:
PHP - somo la 39: Jinsi ya kutengeneza mafaili na mafolda kwenye server kwa kutumia PHP
Katika somo hili utakwenda kujifunza jinsi ya kuzungumza na server ili kutengeneza mafaili, mafolda, kufuta na ku edit kwa kutumia PHP.
Soma Zaidi...PHP somo la 54: class constant kwenye php
Katika somo hili utakwenda kujifunza jinsi ya kutumia constatnt kwenye class.
Soma Zaidi...PHP - somo la 4: Aina za data zinazotumika kwenye PHP
Katika somo hili utakwenda kujifunza aina za data ambazo hutumika kwenye PHP
Soma Zaidi...PHP - somo la 32: Jinsi ya kutumia filter_var() function kwenye PHP
Katika somo hili utajifunza jinsi ya kutumia filter_var() function kwa ajili ya kuchuja code zilizo hatari kwenye PHP file
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...PHP somo la 54: PHP OOP class constant
Katika somo hili utakwenda kujifunza jinsi ya kutumia constatnt kwenye class.
Soma Zaidi...