Moinsen.
Folgendes.
Zurzeit arbeite ich an einemBoard/Forum.
Nun. Dieses Board/Forum hat verschiedene Kategorien, in den Kategorien sind Threads und in den Threads wird natürlich mit Posts geantwortet.
Die Kategorien können Unterkategorien haben und diese können auch wieder Unterkategorien haben.
So.
OOP ausgedrückt habe ich das ganze mal in 3 Klassen formuliert:
class.Category
--------------
# zeigt Kategorien und Unterkategorien Kategorie 1 -> Kategorie 2 -> Kategorie 1 -> 3
showCategoryStructur()
# Holt mir alle Kategorien in ein Array
allCategories2Array()
# löscht eine Kategorie
delCategory()
# benennt eine Kategorie um
renameCategory()
# fügt eine Kategorie hinzu
addCategory()
# Listet die Kategorien und gibt sie aus
listCategories()
class.Article
-------------
# holt alle Threads der Kategorie
allArticleOfCategory
# holt einen Thread + Antworten
oneArticle()
# zeigt die X neusten Threads
newestArticles(x)
# erstellt neuen Thread
mkNewArticle()
# löscht einen Thread
delArticle()
# editiert einen Thread
editArticle()
# Macht Thread (un-)sichtbar
setArticlesVisibility()
# gibt Thread + Antworten aus
showArticle()
# erstellt eine Antwort zu einem Thread
answerArticle()
# zeigt ein Formular zum erstellen/editieren eines Artikels
showArticleForm()
# generiert eine Vorschau
previewArticle()
# bewertet einen Thread
rateArticle()
Beide Klassen sollen nun in der class.Board kombiniert werden.
Im Konstruktor der Board-Klasse werden nun Requests abgefangen und entsprechend behandelt. Wenn ich z.B. auf den "löschen"-Button klicke, steht im Konstruktor
if(isset($_POST['del'])) Article::delArticle();
So in etwa. Würdet ihr das mit dem Abfangen von Requests genauso machen?
Anders wüsste ich nicht wie ich das machen soll.
Aber das ist auch schon ein Problem. Eine Klasse bekommt _zwei_ Klassen.
Ich möchte allerdings das NUR die Boardklasse auf die Category und Article Klassen zugreifen darf. Damit fällt das statisch machen schonmal weg, denn dann, kann ja jeder darauf zugreifen.
Oder gibt es da eine Möglichkeit?
Wie würdet ihr das ganze machen? Oder würdet ihr daraus eine große Boardklasse machen?
Liebe Grüße,
Klaus