mark: PHP - OOP - Wie sollte ich am besten meinen Code strukturieren?

Beitrag lesen

Guten Abend,

ich bin neu, was Objektorientierte Programmierung angeht. Leider helfen mir die Tutorials mit Tieren, die Laute von sich geben nicht mehr weiter ;), bzw. bin ich zu doof dieses Konzept auf meinen Anwendungsfall zu übertragen. Mir geht es im Wesentlichen darum, wie ich meinen Code bestmöglich strukturieren kann und vor allem die Denkweise, die dahinter steckt.

##Mein Anwendungsfall: Ich bastle an einer Weboberfläche für einen Changelog.

Als Datengrundlage dienen XML-Dateien, welche das Hauptrelease der Software und die dazugehörigen "Subreleases" samt Kommentaren zu den jeweiligen Bugfixes und neuen Features enthält. Das Ganze ist so ausgelegt, dass man die Changelogs mehrerer Anwendungen damit abbilden kann.

Ich habe dazu eine Klasse (meine einzige Klasse) mit dem Namen "changelog" erstellt. Doch diese platzt so langsam aus allen Nähten und wird unübersichtlich und errinnert mich eigentlich stark an meinen Spaghetti-Code, den ich eigentlich überwinden wollte.

Die Methoden, die darin enthalten sind kann man wie folgt gliedern:

  • Getter und Setter: für die Konfiguration der Anwendung
  • Methoden zum Lesen und Mergen der einzelnen XML-Dokumente
  • Methoden zum Sortieren der einzelnen Einträge nach Release-Datum und Anwendung
  • Methoden zum Filtern nach Anwendungs-Name, Release-Datum und Version
  • Methoden für die View, mit denen ich übersichtliche Arrays erzeuge, die ich dann in der View mittels foreach durchschleife

Ich binde den Code, der sich in einer einzigen Datei befindet mit einer include Anweisung ein.

##Meine kläglichen Versuche Ich hab mir überlegt die Klasse in mehrere Dateien, gemäß der Typologie ihrer Methoden (Sortieren, Filtern, View, ...) aufzuspalten. Das ist jedoch nach kurzer Recherche unter PHP nur begrenzt möglich. Dann habe ich mich in Namespaces eingelesen. Doch auch das schien mir nicht der Schlüssel zur Lösung zu sein. Vererbung wüsste ich auch nicht, wie ich das in diesem Zusammenhang verwenden könnte.

##Meine Frage Meine Frage deshalb: WIE kann ich mein Projekt besser, d.h., besser objektorientiert strukturieren?

lg

mark

P.S.: Es ist ein kleines Projekt und ich möchte damit keine Diskussion über die Sinnhaftigkeit OOP in diesem Zusammenhang anstoßen. Mir geht es nur darum, das besser zu begreifen.