hotti: Vielen Dank für alle Hinweise!!!

Beitrag lesen

hi ;)

Seh ich das richtig: Eine Instanz "Shop/Offer". Kunde eins kommt und erhält "Warenkorb[1]", Kunde zwei "Warenkorb[2]" usw? Es gibt Artikel[1]...Artikel[x] und dann ergibt sich sowas wie
"Warenkorb[2][Arikel[1]]"?

PHP verwaltet Sessions in einzelnen Dateien. Das macht die Sache insofern einfach, als dass der Warenkorb direkt in der Session-Datei gespeichert werden kann. Weil jede Session in PHP eine einzelne Datei ist, kann der Programmierer auf den ersten Schlüssel 'session_id' verzichten. Somit ist bei mir der erste Schlüssel in der Datenstruktur der Name des Warenkorbs (Mandant). Der nächste Schlüssel ist die Artikelnummer, daran hängt das Array mit allen Attributen eines Artikels und es kommt ein Attribut hinzu: Die Anzahl des Artikels im Warenkorb. Trivialer Code in der Controler Class:

  
		elseif($this->param('pick')){  
			$artname = $this->param('artname'); // artname == sku  
			$in_aiw = $this->param('aiw');  
			if( preg_match("/^\d+$/", $in_aiw)){  
				// wir brauchen das Artikel Objekt  
				// das array liegt bereits in ARTICLE  
				$ao = $this->ARTICLE[$artname];  
				$ao['anz'] = $in_aiw;  
				// descr thumb detail kann gelöscht werden  
				foreach(array('descr','thumb','detail') as $att) unset($ao[$att]);  
				//$this->dd($ao);  
				$_SESSION[$this->eav('cart')][$artname] = $ao;  
				if($in_aiw == 0) unset($_SESSION[$this->eav('cart')][$artname]);  
			}  

Der Mandant steht in $this->eav('cart'). Die Methode eav() ist ein kombinierter Getter/Setter für Attribute der Instanz 'Offer' (Offer ist der Einkaufsladen). Method eav(), sprich: Entity Attribute Value, gibt ein Attribut mit einem Argument oder setzt ein Attribut, wenn mit 2 Argumente aufgerufen. Die Ähnlichkeit des Namen dieser Methode mit Magento ist rein zufällig ;)

Für Perl bietet sich der Serializer Storable::freeze() an, wenn mit Dateien gearbeitet werden soll. Oder ein ORM-Interface zu MySQL o.ä.

Hotti