Also vorab muß ich sagen, ich habe von OOP sogut wie keine Ahnung ich kann Funktionen erstellen und unstrukturierten Code massig erzeugen. Bekomme SQL Verbindungen hin und beschäftige mich unregelmäßig seit 4-5 Jahren mit PHP. Es kann auch sein das die Frage jetzt eher in ein anderes Forum passt.
Also ich habe für mich mal ein kleinen Shop gebastelt gehabt. Jetzt stellt sich mir die Frage wie könnte ich die Produktauflistung in OOP umsetzen.
Jetzt ist es so, es gibt eine Datei mit einer Funktion wo die DB ausgelesen wird die Daten in einer Schleife durchgegangen und in ein Array gespeichert wird und am Ende werden diese ausgegeben. Dazu habe ich dann noch eine Datei mit ähnlicher Funktion für die Suche, für die Auflistung nach Hersteller und fürs Archiv. Das macht zusammen 4 Funktionen in vier Dateien. Und bevor ich es noch vergesse, es gibt noch eine fünfte für die Detailanzeige, ist jetzt aber nicht wichtig.
Nun sind die Bedingungen für alle vier Funktionen unterschiedlich. Dennoch ist der Output bei allen fast ähnlich. Bei dreien gibt es eine dazu noch eine Blätterfunktion.
Hier mal ein Versuch von mir:
Ist das noch OOP oder ist es schon zu viel Codemischung? Dann das soweit von der Struktur noch OK ist, hätte ich gerne noch ein Tipp wie ich in der Blätter Funktion an den jeweils passenden SQL Code aus den anderen Funktionen komme. Möchte wenn, diesen ja nicht nochmal in der Blätter Funktion schreiben. Vielleicht sollte man die Blätterfunktion von der product Klasse ableiten, Art Mutter - Kind.
Also ich habe für mich mal ein kleinen Shop gebastelt gehabt. Jetzt stellt sich mir die Frage wie könnte ich die Produktauflistung in OOP umsetzen.
Jetzt ist es so, es gibt eine Datei mit einer Funktion wo die DB ausgelesen wird die Daten in einer Schleife durchgegangen und in ein Array gespeichert wird und am Ende werden diese ausgegeben. Dazu habe ich dann noch eine Datei mit ähnlicher Funktion für die Suche, für die Auflistung nach Hersteller und fürs Archiv. Das macht zusammen 4 Funktionen in vier Dateien. Und bevor ich es noch vergesse, es gibt noch eine fünfte für die Detailanzeige, ist jetzt aber nicht wichtig.
Nun sind die Bedingungen für alle vier Funktionen unterschiedlich. Dennoch ist der Output bei allen fast ähnlich. Bei dreien gibt es eine dazu noch eine Blätterfunktion.
Hier mal ein Versuch von mir:
PHP-Code:
<?php
class products {
private function hersteller(){
$sql_teil = 'FROM...WHERE';
return sql_query('SELECT...');
}
private function normal_listing(){
$sql_teil = 'FROM...WHERE';
return sql_query();
}
private function suche(){
$sql_teil = 'FROM...WHERE';
return sql_query();
}
private function archiv(){
$sql_teil = 'FROM...WHERE';
return sql_query();
}
private function blaettern(){
return sql_query('SELECT COUNT...');
}
public function get_blaettern($was, $blaettern, $suche){
$this->blaettern();
return array('vor', 'zurueck', 'nummern etc');
}
public function get_output($was, $blaettern, $suche){
switch($was){
case 'hersteller':
$data = $this->hersteller($blaettern);
break;
case 'normal':
$data = $this->normal_listing($blaettern);
break;
case 'suche':
$data = $this->suche($suche, $blaettern);
break;
case 'archiv':
$data = $this->archiv($blaettern);
break;
}
while($r = sql_result($data)){
$output[] = array('blabla');
}
return $output;
}
}
$items = new products();
$ausgabe = $items->get_output($was,$blaettern, $suche);
$blaetter_data = $items->get_blaettern($was,$blaettern,$suche);
?>
Ist das noch OOP oder ist es schon zu viel Codemischung? Dann das soweit von der Struktur noch OK ist, hätte ich gerne noch ein Tipp wie ich in der Blätter Funktion an den jeweils passenden SQL Code aus den anderen Funktionen komme. Möchte wenn, diesen ja nicht nochmal in der Blätter Funktion schreiben. Vielleicht sollte man die Blätterfunktion von der product Klasse ableiten, Art Mutter - Kind.
Kommentar