OOP in eigenem Forum

flooo

Erfahrenes Mitglied
n'abend,
ich habe vor mein kleines selbstgecodetes Forum neu zu schreiben und daran auch gleich OOP zu lernen. Nur kann ich mir beim besten Willen nicht vorstellen wie man die Klassen einteilen könnte. Könnte man z.B. sagen, je nachdem auf welcher Ebene man ist, jedes Board bzw. jeder Thread bzw. jede Antwort ist eine Klasse (also ein Objekt).
Für Denkanstöße bin ich sehr willkommen und dankbar.
bis dahin
flooo
 
Hallo,

du könntest schon mal einen Großteil der in der Datenbank vorhandenen Daten via objektrelationalem Mapping auf Objekte abbilden (bzw. andersrum).

Bestimmte Aufgaben könnte man auch in Klassen kapseln (E-Mail-Versand, Captcha, Formularauswertung…).

Und nicht zuletzt könntest du das ganz in MVC-Manier aufteilen (Model – die Datenschicht, View – die Präsentationsschicht, Controller – die Logikschicht).

Grüße,
Matthias
 
Ein gutes Hilfsmittel Objecte korrekt zu kapseln ist in dem mann seine Anwendungsfälle als Sätze auschreibt und die Subjecte betrachtet ob sie als Object gekapselt werden können.

Beispiel:
Der User sucht im Forum einen passenden Thread. Dies geschieht über die Suchengine welche die Resultate zurückliefert.
Er schreibt einen Post in einem Thread. Dieser Post ist eine Antwort auf den vorangegangenenn.

So kannst du schon herausfinden das:
User, Forum, Thread, Searchengine, SearchResultat, Post, Answer
gute Kandidaten für Klassen sind.
Wenn du es weitertreibst versuchst du nun festzustellen was wie zueinander gehört:
So stellt sich recht schnell raus das Answer auch nur ein Post ist, hier biete es sich an das Answer von Post erbt.
Genauso erkennst du das Forum eine Collection von Threads hat, und Thread eine Collection von Posts (ob das Antworten oder Posts sind interressiert Thread nicht (polymorphie ;) ).
SearchEngine erzeugt eine collection von SearchResults
usw.
 
Danke für die Antworten. Muss die jetzt erstmal durcharbeiten, vor allem die von Matthias. Habe mir schonmal die HP von Propel angeschaut. Ich melde mich wieder wenn ich nen bisl was verstanden habe.
Kann mit noch einer die Sache mit den Collections näher bringen. Sind das Sammelarrays für objekt oder was ist das?
Danke
flooo
 
Zuletzt bearbeitet:
hi,
bin mitten dabei und habe erstmal mit einer DB-Klasse angefangen. Nun noch mal zu den Collections? Was das heißt weiß ich aber wie wird das verwendet bzw. angewendet?
flooo
 
N'abend,
hab noch nicht aufgegeben ;) und noch ne Frage. Beispielsweise möchte ich jetzt die Ausgabe der Überschriften usw. aller Threads eines Boards realisieren. Jetzt die Frage: Geb ich der Klasse BOARD eine neue Methode "liste_threads" oder geb ich der Klasse THREAD eine neue Methode "zeige_vorschau_thread" und erstelle für alle Threads eins Boards dann jeweils ein Objekt und rufe bei jedem Objekt diese Methode auf?
MfG und schönen Abend noch
flooo
 
Ich schreib auch grad ein Board, was hauptsächlich aus Klassen besteht. Ich hab meiner Threads-Klasse eine Methode getThreads spendiert, wo ich ein Array mit allen Themen schön sortiert zurückgebe.

Nachtrag: Wenn du interesse hast, dann können wir ja mal unsere Codes austauschen...
 
Tach,
die Version macht auch mehr Sinn, sonst braucht man viel zu viele MySQL-Abfragen. Bin noch nicht allzuweit, aber wir können gerne mal Code austauschen.
Kannst mir ja einfach mal ne PM schreiben.
flooo
 
Zurück