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

Beitrag lesen

hi,

Für einen praktischen Code/Programmaufbau ist das jedoch unbrauchbar, es ergeben sich schwer überschaubare Abhängigkeiten zwischen den einzelnen Klassen, die mit Vererbung und Delegation nur unnötig kompliziert gelöst werden können." ??? OOP ohne OOP? Oder doch nicht vorher nachgedacht?

Ha, Du hast Interesse ;)
Bitte folge mir:
OOP grundsätzlich JA. Ich habe nur eine Klasse, die heißt Offer. Es ist deswegen nur eine Klasse, weil darauf eine Kontrollstruktur sitzt, die NICHT klassenübergreifend arbeitet und deswegen überschaubar bleibt (wichtig).

MVC: Offer ist die Model Class für den Shop, für den es EINE Instanz gibt. Nein kein Singleton.
In Class Offer gibt es weitere Objekte, die jedoch keine Klasseninstanzen sind. Meta-Objekte dieser Art sind einfach nur Datenstrukturen (array's), wie z.B:

  • der Warenkorb
  • ein einzelner Artikel
  • die Daten für das View (Response)

Diese Metaboliten (die Bezeichnung habe ich der Biochemie entlehnt) sind Attribute der Instanz Offer. Damit wird der Datenaustausch NICHT klassenübergreifend.

Es gibt jedoch weitere Klassen (PHP spec. Interface), die z.B. als Data Abstraction Layer dienen um eine Bestellung nach mysql zu schreiben. Der Datenaustausch ist eine Delegation:

  
$this->ORDER->insert($warenkorb);  
^Instanz Offer  
       ^Interface (Instanz Order)  
              ^Vorgang  
                     ^Meta-Daten  

Der Controler sitzt in der Model Class, die ich auch Response-Class oder Controler Class nenne und hat eine Parameter-Kontrollstruktur. Schlüsselparameter sind z.B:

  • pick (Artikel wandert in den Warenkorb)
  • order (Bestellung senden)
  • article (Artikelseite ausgeben)

Sofern keine Parameter anliegen, wird das Template für die Artikelübericht geladen, bestückt mit allen dazu notwendigen Daten. Schlüsselparameter rufen gleichnamige Methoden auf (PHP-Spec.: Magic).

Alles keine Hexerei, aber schon durchdacht hehe ;)
Hotti