Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 19-07-2009, 10:53
tim-gt
 Registrierter Benutzer
Links : Onlinestatus : tim-gt ist offline
Registriert seit: Jun 2009
Beiträge: 52
tim-gt befindet sich auf einem aufstrebenden Ast
Standard mysqli: erweitern oder aggregieren?

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":

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 {//...} 
"Aggregieren":

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()){
               
//....
        
}

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.
Mit Zitat antworten