Ich werde demnächst eine DB-Klasse (ausschliesslich MySQL), die auf der mysqli-Extension basiert, für meine Website coden und möchte euch diesbezüglich fragen, welchen Ansatz ihr besser findet und welche Vor- und Nachteile es gibt. Ich bin auf 2 Ansätze gestossen.
"Erweitern":
"Aggregieren":
Der erste Ansatz scheint mir auf den ersten Blick etwas komplizierter oder abstrakter, der zweite benötigt wahrscheinlich ein bisschen mehr Schreibarbeit - aber ich bin echt auf dem Holzweg, was besser für mich sein könnte.
"Erweitern":
PHP-Code:
class DB extends MySQLi{
// Konstruktor, etc...
/* Statement erzeugen */
public function prepare($query){
$stmt = new DBStmt($query);
// Fehlerbehandlung etc...
return $stmt;
/* Result erzeugen */
public function query($sql){
$this->real_query($sql);
// Fehlerbehandlung etc...
$result = new DBResult($this);
return $result;
}
class DBResult extends MySQLi_Result {//...}
class DBStmt extends MySQLi_Stmt {//...}
PHP-Code:
class DB {
private $connection;
private $result;
public function __construct($host, $user, $pw, $db){
$this->connection = new MySQLi($host, $user,$pw,$db);
}
public function query($sql){
$this->result = $this->connection->query($sql);
// Fehlerbehandlung etc..
// z.B...
public function getResultAsObject{
while($data = $this->result->fetch_object()){
//....
}
}
Kommentar