Moin liebe Yii’ler,
vorweg erstmal: Ich bin Anfänger, was OOP betrifft, habe mich jedoch durch das Buch "Web Application Development with Yii and PHP" gearbeitet und die TrackStar Application ohne nennenswerte Probleme programmiert. Nun versuche ich, meine Ideen für ein CMS in Yii umzusetzen, doch es stellt sich mir die Frage, wie ich folgende Struktur umsetzen soll:
Entity
-
Account[list]
-
Person
-
Corporation
[*]Post
-
Text
-
Image
-
Media
[/list]
Um es kurz zu halten werde ich mich nur auf Entity->Post->Text beziehen.
Mein Idee ist, mit den Entitäten eine datenbankweit einzigartige ID zu erstellen, des weiteren enthält die Entität die Attribute titel, timestamp und sonstige Attribute und Funktionen, die allen tiefer liegenden Klassen gemein ist, gleiches gilt für Post und co. Die Differenzierung entsteht durch die z.T. gravierenden Unterschiede in den Funktionen und Attributen der Unterklassen. So habe ich das OO-Prinzip verstanden, aber ich bin durchaus bereit, mich eines besseren belehren zu lassen
Mein erster Ansatz zur Umsetzung wäre, die Tabellen wie oben abgebildet aufzubauen, wobei die Entität ein Feld table bekommt, welches die Tabelle des "Endprodukts" enthält und die Model-Klassen von einander erben. Dazu habe ich diesen Artikel gefunden, den ich aber nicht verstehe, ich weiß auch nicht, ob die Anwendung einer der "factory pattern" sich für mein Vorhaben eignet. Ansonsten ist mir auch nicht klar, was ich in den erbenden Klassen überschreiben muss, darf und nicht darf.
Der zweite Ansatz ist, die Tabellen ebenso aufzubauen, aber nicht von einander erbende Models und Controller zu erstellen, die die Daten von den anderen Models beziehen und sie an diese weitergeben, was meines Wissens einen größeren Spagat erfordert.
Für einen dritten Ansatz feht mir gerade etwas die Kreativität.
Nun, welches Vorgehen könnt ihr mir empfehlen? Was sind die Vor- und Nachteile, was ist der Usus?
Herzlichen Dank im Voraus
MfG HerHde