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 kitabu cha Simulizi 👉2 ai web app 👉3 Kitabu cha Afya 👉4 Bongolite - Game zone - Play free game 👉5 web hosting 👉6 Tafasiri ya Riyadh Swalihina
Post zinazofanana:
PHP somo la 64: Jinsi ya kutengeneza database na kuingiza data kwa kuumia PDO
Katika somo hili utakwenda kujifunza jinsi ya kutumia PDO kutengeneza database, kuteneneza table na kuingiza data moja na zaidi ya moja.
Soma Zaidi...PHP - somo la 20 : Jinsi ya kufuta na ku update data kwenye database kwa kutumia PHP
Katika somo hili utakwenda kujifunza jinsi ya ku update na kufuta data kwenye database kwa kutumia PHP
Soma Zaidi...PHP somo la 57: class traits kwenye PHP
Katika somo hili utakwenda kujifunza concept ya traits kwenye OOP. hii itakusaidia ku solve baadhi ya changamoto zinazotokana na inheritance
Soma Zaidi...PHP somola 69: jinsi ya kutuma email kwa watu zaidi ya mmoja kwa kutumia PHPMailer
Katika somo il utajifunza kutuma email kwa watu wengi kwa kutumia PHPMailer. Pia utajifunza jinsi ya kuweka Carbon Copy na Blind Carbon Copy
Soma Zaidi...PHP somo la 94: Maana ya ORM na kazi zake
Katika somo hili utakwenda kujifunzo kuhusu teknolojia ya ORM na inavyotumika kulinda usalama wa database
Soma Zaidi...PHP BLOG - somo la 8: Jinsi ya kufuta post kwenye database
katika post hii utajifunza jinsi ya kufuta post kwenye database. pia utajifunza jinsi ya kufuta picha kwenye server
Soma Zaidi...