OOP & MVC: Einstieg?

para_noid

hirnrissig
N'abend,

ich habe zu o.g. Begriffen zwar schon einiges gelesen, aber sobald es an die Praxis geht, steht ich n bisschen auf verlorenem Posten. Ich hab ein unfertiges PHP-Projekt das ich gerne weiterentwickeln möchte, aber eben möglichst objektorientiert und nach dem MVC-Muster. Dabei möchte ich gerne alle verfügbaren Neuerungen (habe aktuell PHP 5.3.2 zur Verfügung) nutzen oder zumindest mal ausprobiert und verstanden haben (wie interface).
Ich hab den ganzen Code schon mehrfach "optimiert" in der Überzeugung, ihn "korrekter" zu machen; stattdessen hab ich jetzt nen Haufen Klassen, die zwar irgendwie n bisschen sinnvoll sind und funktionieren, aber das Gelbe vom Ei ist das auch nicht. Ich komme quasi über die Ebene "einfache Klassen erstellen & verwenden" nicht hinaus.

Kennt jemand ein entprechendes Tutorial, dass mir die genannten Aspekte in der Praxis näherbringen kann?
 
Um die Grundlagen zu lernen ist es mMn nicht schlecht mal etwas ohne die Frameworks zu Programmieren. Wenn man nachher was komplexes machen will, kann man sein Wissen immer noch mit den Frameworks erweitern.

Ist für mich etwa so, als ob ich rechnen nur mit dem Taschenrechner/PC/Handy lernen würde, aber nicht mehr das Kopfrechnen oder das schriftliche Rechnen. Später rechnet man dann schon zu 90% mit den Hilfsmitteln.
 
Ich hab OOP gelernt in dem ich mir ein paar Bücher darüber geholt hab und auch ein Projekt welches noch in "Spaghetti-Code" geschrieben war mit dem ZF umgesetzt hatte. Da war der Lern und "Aha!-Effekt" auch groß.
 
Willst du dir das wirklich selber antun?

Ja ich will ;)

Rein von der Theorie her finde ich die Erklärungen in diesem Buch sehr verständlich, aber sobald es dann zu den Gemüse- & Küchengeräte-Klassen kommt, herrscht bei mir nur noch "hä?". Wenn ich dann im Gegenzug den Stand meines Projektes betrachte, fühle ich mich genötigt, die Theorie auf die Praxis zu übertragen - mit eben mäßigem Erfolg.

Ich gestehe, dass ich mich mit Frameworks noch nie befasst habe und den Lerneffekt nicht einschätzen kann. Ich befürchte aber, dass ich mich zu sehr darauf verlassen könnte, um dann händisch trotzdem wieder halbdurchdachte Skripte zu schreiben.
Es geht mir wirklich nicht darum, mich an perfektem Code zu erfreuen (schön wärs natürlich). Das Projekt muss auch nie fertig werden, es würde sich einfach zum Verbessern anbieten. Wenn ich jetzt ein Framework nutzen würde, was sicher irgendwann mal der Fall sein wird, würd ich gerne wissen, was im Einzelnen dahintersteht. In der Lage sein, eine ähnliche Funktionalität selber realisieren zu können, auch wenn das freilich keinen Sinn macht.

Ich hab OOP gelernt in dem ich mir ein paar Bücher darüber geholt hab

Könntest du welche empfehlen? Da ich zumindest die Mail-Klasse(n) von Zend schon verwendet habe, würde ich mich wohl demnächst mit diesem Framework stärker auseinandersetzn wollen. Danke erstmal für die Links. Falls aber doch jemand eine andere Anlaufstelle kennt wär ich über einen Hinweis erfreut.
 
Meiner bescheidenen Meinung nach, ist es nicht wirklich wichtig, alle Aspekte eines Frameworks einmal ausprobiert zu haben. Viel wichtiger ist es, Best-Practices und Design-Patterns zu kennen und im spezifischen Fall zu erkennen, was sich dafür wirklich eignet.

Es fängt damit an, sich Gedanken zu machen, wie ein Datenbank-Abstraktions-Layer aufgebaut ist, warum man ihn braucht (oder auch nicht) und welche Konsequenzen sich daraus ergeben. Beispiel:

- Legst du Wert auf Unabhängigkeit und Performance ist eher zweitrangig, dann empfiehlt sich eine Factory. Ist die Unabhängigkeit egal, weil du ohnehin nur gegen das RDBMS xyz entwickelst, bietet sich ein Singleton an.

- Musst du an den Datenbank-Tabellen oft die Struktur anpassen, baust du einen OR-Mapper ein (ist resourcen-hungrig aber sehr flexibel). Kommt das eher selten vor, nimm einfache Plain-Objects als Modell.

- Willst du öfters mal das komplette Front-Design deiner Applikation anpassen, bau ein Layout-Pattern ein. Brauchst du das nicht, weil du das Design als Nebensächlichkeit betrachtest, genügt ein View-Pattern. Man kann beides natürlich kombinieren, zum mindest sollte man Layout nicht ohne View machen.

Ich hab vor langer Zeit mal ein Framework selbst geschrieben, und kann dir sagen, das macht zwar Spaß, aber du wirst niemals damit fertig. Irgendwann verliert es seinen Reiz, dann nimmst du automatisch etwas, was eine breite Code-Basis hat und von vielen verwendet wird.
 
Zurück