Andreas: Hilfe bei OOP-Warenkorb

Beitrag lesen

Hallo!

Inzwischen probiere ich mal einen Warenkorb mit Hilfe der OOP in PHP zu realisieren. OOP ist die eine Sache, Modularität die andere. Ich möchte ein Warenkorb-Modul, auf das ich von einem PHp-Script drauf zugreifen kann, ohen dass ich irgendwelche Transaktionen(SQL-Abfagen...) vornehmen muß.
Ich wollte das jetzt erstmal zum testen mit Sessions probieren, d.h. den Warenkorb als Array in der Session speichern, nur zum probieren.
Erstmal bedanke ich mich vor allem bei Henryk, Achim, Philipp und Sven für die Hilfe bisher!(http://forum.de.selfhtml.org/archiv/2002/4/8947/, http://forum.de.selfhtml.org/archiv/2002/6/14064/, http://forum.de.selfhtml.org/?m=82625&t=14849)

Ich habe aber vor allem Probleme mit den verschiedenen 'Ebenen'. Philipps Beispiel war wirklich hilfreich, aber ich verstehe nicht, warum man da so viele Klassen für braucht?! Ich denke im Augenblick, das man mit 2 Klassen auskommen sollte, eine Warenkorb-Klasse in der man allgemeine Angaben bekommt, Artikelzahl, Summe über die Preise x Anzahl -  und eine Artikel-Klasse, in der für einen Artikel der Einzelpreis, die Anzahl, eine Bezeichnung und ID stehen.
Das Problem, ich brauche eine Instanz Warenkorb, aber mehrere, sagen wir mal 3 Instanzen für die Artikel Klasse, für 3 Artikel.
Mit einer Klasse komme ich inzwischen klar(hab mal was für die Artikel geschrieben):

<?
@session_start();

class Artikel{

var $bezeichnung;
 var $anzahl;
 var $preis;

function plus($num) {

$anzahl = $num + $_SESSION["anzahl"];

$_SESSION["anzahl"] = $anzahl;

$this->anzahl = $anzahl;

}

function anzeigen(){
 return $this->anzahl;

}

}

$artikel = new Artikel();

if ($add){
$artikel -> plus($add);
}

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<? echo $artikel -> anzeigen() ; ?>
<br>
<a href="<? echo $PHPSELF."?add=10"; ?>">plus
</a>
</body>
</html>

Entsprechend müßte ich sowas mit dem Warenkorb machen, eine Instanz... das sollte auch klappen, nur wie bekomme ich jetzt mehrere Instanzen für die verschiedenen Artikel? Halt dynamisch, wie ich mehrere Instanzen bekomme weiß ich wohl, aber halt genau die entsprechenden für die Artikel im Warenkorb! Kann ich das in der Warenkorbklasse machen? Wie - und wie greife ich im Script drauf zu?

Und noch ein Problem, wenn ich das jetzt mit der DB mache, und die Artikel in einer Schleife aufliste, immer mit verschieden Funktionen wie getPreis, getID, getAnzahl... und in jeder einzelnen Funktion eine SQL-Abfrage machen würde, und das für jede Instanz nochmal, dann wird das aber wohl eine Ecke unperformanter und umständlicher, als wenn ich wie 'früher' eine einzige Abfrage mache, und die in der Schleife auslese bzw. anzeige, oder?

Viele Grüße
Andreas