OOP Klassen / PHP Basisklasse

Metha

Mitglied
Moin Moin,

ich habe in der letzten Zeit vermehrt Artikel über das Thema Klassen und in diesem Zusammenhang dann Vererbung, Singleton, Zugriffsrechte etc. gelesen.

Für komplexe Webentwicklungen ist dies ja unbestritten der Richtige weg. Nun mir ist in diesem Zusammenhang aber noch nicht ganz klar geworden was z.B. eine Basisklasse (Mutterklasse) für z.B. ein CMS System für Bestandteile haben sollte?

Also meine Frage zielt auf ein angestrebtes Grundgerüst für Webseiten, welches in seiner reinsten Form immer wieder eingesetzt werden könnte.

Mir geht es hier nicht um Code, sondern nur um gedankliche Grundansätze von Bestandteilen (Methoden).

Kann mir da vielleicht ein erfahrener PHPler ansätze geben?

Besten Gruß Metha
 
Ich kann mich zwar nicht als erfahreren PHPler bezeichnen, kann dir aber trotzdem zwei Sachen nennen die ich meistens(eigentich immer) verwende:
  • Templateparser
  • mySQL (verbinden, auslesen, Errorhandling und sonst. Spielereien)

gruß soyo
 
Auch ich kann 2 nützliche Dinge hinzufügen :)

Es gibt in den Klassen die möglichkeiten funktionen z.B private oder public zu erstellen bzw. einzurichten, wenn die function private ist dann kann keine andere klasse diese inhalte vererben oder weiterleiten und bei public ist es ganz umgekehrt.

(Bitte korriegiert diesen Beitrag wenn was falsch ist, danke ;) )

MfG
KD3
 
Also eine Basis-Klasse für ein CMS zu code, halte ich für den falschen Ansatz. Du solltest lieber dein Konzept in logische Bereiche untergliedern. Also eine Klasse ist verantwortlich für Artikel (anlegen, editieren, löschen, usw...), eine andere für die Benutzer, wieder eine andere im Backend für Datenbankverbindung, eine andere für Kommenare, usw...

Ein weiterer interessanter Ansatz ist das MVC Prinzip und diverse Implementierungen in Frameworks (ich empfehle das Zend Framework).

Ich hoffe ich habe dir damit ein bisschen weitergeholfen.

@KD3
So leid es mir tut, das stimmt nicht. Methoden, die als private deklariert werden, können von anderen Klassen überschrieben werden, ABER Aufrufe über parent::foobar() sind nicht möglich. Um ein Überschreiben zu verhindern gibt es das Schlüsselwort final.

mfg
nosilume
 
Danke erstmal für eure Antworten - Aber wenn ich das MVC Prinzip richtig sehe, ist eine Clusterung in Mutter- u. Kinderklassen ja auch nach diesem Prinzip. "Reinen Code" würde ich ja dann auch nur in den eventuellebn Modulen oder Kategoriedateien einsetzen.

Nun um noch mal auf die Elternklasse (Basisklasse) zurück zu kommen - kann mir da niemand einen Ansatz geben mit welchen Methoden diese bestückt werden müsste?

Also vom Ansatz her würde ich nämlich Datenbankanbindung und Templatpaser eigentlich als Kinderklassen verstehen ...
 
Habe hier das Buch "PHP Design Patterns" liegen. Dort ist es sehr gut beschrieben.

Ansonsten für Design Patterns würde ich dir die kostenlose Onlineversion auf

Link

Abschnitt II : Entwurfsmuster in PHP anwenden

empfehlen. Eine genaue Umsetzung musst du dir natürlich selbst überlegen, aber es ist ein guter Startpunkt.
 
Wirklich interessante Links. Gibts die aber auch irgendwo in Englisch? Ich finde es einfach nur schrecklich solche Bücher auf Deutsch zu lesen.

MFG
X
 
Ich glaube gerade die Suche nach englischen Hilfen sollte kein Problem darstellen.
Google Groups oder google.com mit suche im englischen reicht da als Startpunkt komplett aus. Als Begriffe würde ich "php design patterns" oder einzelne patterns "ergooglen" wie z.b. Singleton.
Wenn man Blogs oder Foren auffindet, sollte man genauer in die Comments schauen. Dort sind oft die besten Hinweise und Tipps zu finden (Querlinks zu anderen Seiten).
Wenn einfaches und zum lernen gesuchtes OOP gemeint ist, würd ich einfach nach php +oop suchen.

Ich hatte angefangen mit einer Quelle aus dem IBM Dev Network:
http://www-128.ibm.com/developerworks/library/os-php-designptrns/

Mit den Büchern ist es immer so eine Sache.
Viele versuchen englische Fachbegriffe die einfach so gentuzt werden sollten, Krampfhaft ins Deutsche zu übersetzen, was dem Programmierer allerdings nicht hilft. Das Proxy Pattern wird dann schon mal zum "Stellvertreter Muster" oder "Umleitungs Design".
 
Zurück