Hallo Christians!
Das Problem bei PHP ist, dass der OO-Support sehr 'dürftig' ist, um es mal so zu sagen. Ich hab' mal einen Thread zum Thema Validierung gestartet [1] und habe mir sehhhr lange ein Konzept überlegt und jetzt endlich angefangen, zu implementieren. Ich habe mich dann doch für den Form-Generator entschieden. Was mich am meisten stört: wenn ich ein Objekt von irgendeiner meiner Klassen instantiere, muss ich die Zuweisung explizit per Referenz erfolgen lassen, also $obj =& new Klasse (...); (man beachte das &-Zeichen) Das "Problem" wird sogar im Manual beschrieben: http://www.php.net/manual/en/language.oop.newref.php In einer richtigen[tm] OOP-Sprache würde ich das auch mit Klassen lösen, aber bei PHP ist das u.U. nicht so ideal.
Ich würde das ganze eigentlich sehr gerne mit OOP angehen, nur leider kenne ich mich damit noch sehr wenig aus. Das einzige was ich schonmal mit OOP umgesetzt habe ist ein Warenkorb. In diesem Fall hier weiß ich nicht so recht wo ich genau OOP verwenden könnte. Ich könnte eine Klasse "menu" erstellen mit den einzelnen Menü-Einträgen als Instanzen. Dann würde ich die Instanzen direkt beim Laden der Klasse erstellen. Dann könnte ich schön drauf zugreifen, aber was hätte ich groß davon? Ich könnte als Eigenschaft der Klasse einen Array mit den Instanzen, also den Menü-Einträgen zurückliefern, wo ich dann in der eigentlichen Datei dann mit einer foreach-Schleife draus den HTMl-Code generieren könnte. Aber wofür? Einen großen Nutzen sehe ich hier nicht, vor allem nicht in Bezug auf das Speichern bzw. Zugreifen auf die Menü-Elemente, also Module. Wie würde das denn eien OOP-Profi machen? Und wo könnte ich noch OOP einsetzen? Vielleicht noch bei der mhersprachigen ausgabe, also eine neue Klasse hierfür. Und sonst? Wenn ich nochwas wie das Menü hätte, könte ich hierfür noch eien KLasse machen... aber so richtig habe ich noch nict en Durchblick was mir das am Ende bringt. OK, eine Sache wäre noch eine Klasse für den Datenbank-Zugriff, dann wäre ich nicht mehr so abhängig von mySQL, und könnte z.B. auch postgres verwenden. Nur wie mache ich das denn jetzt? Sagen wir mal ich wollte ein Postgres-Modul, ein MySQL Modul und ein Flat-File Modul verwenden können. Dann würde ich die von mir beschriebende DB-Klasse in eine Datei auslagern, die dann mit Include eingebunden wird, in einer conf-File wird dann halt die DB-include-Datei ausgewählt.
Viele Grüße
Andreas