Sauberes Homepageprojekt

DexXxtrin

Erfahrenes Mitglied
Hallo zusammen,


Ich habe mal eine grundsätzliche Frage zum Aufbau einer Homepage.
Da ich nächstens mit einem Projekt starte, möchte ich vorab noch ein paar Punkte klären.
Mein Projekt besteht darin, eine Homepage komplett selbst zu programmieren (inklusive CMS).

Hauptsächlich wird HTML, CSS und PHP zum Einsatz kommen.

Ich mag mich daran erinnern, dass hier im Forum mal die rede davon war, PHP und HTML zu trennen, sprich nicht im selben File.

Wie wird so ein Projekt sauber strukturiert und aufgebaut? Hat da jemand eine gute Erklärung, hilfreiche Links, Beispiele.


Gruss DexXxtrin
 

alxy

Erfahrenes Mitglied
Wenn du ein CMS benutzen willst, ist die Struktur ja quasi schon vorgegeben. Natürlich werden z.B. Blogeinträge bzw bei CMS auch die komplette Seite aus der Datenbank kommen. Das Theme selber definiert dann nur Bereiche, in die die verschiedenen Texte aus der Datenbank dann eingesetzt werden. Die Trennung von Programmierlogik (PHP) und Darstellung (HTML/CSS) ist in der Programmireung gängige Praxis - im Idealfall soll das sogar so gut getrennt sein, das eben nur der Darstellungslayer (View) geändert werden muss, um die Applikation an verschiedene Endgeräte anzupassen (Webseite, App, API, Desktop, ...) (In der Praxis ist das meiner Erfahrung nach etwas utopisch.)
Wenn du ein CMS benutzen willst, schau dir mal October an: http://octobercms.com/ Das ist auf dem Laravelframework aufgebaut und das Userinterface gefällt mir auch sehr gut. Habe auch schon einige Plugins dazu geschrieben. Dieses baut auf staitschen HTML-Dateien auf, die allerdings auch eine PHP-Sektion haben. Schau dir die Dokumentation an, um mehr darüber zu erfahren :)
 

DexXxtrin

Erfahrenes Mitglied
Danke schon mal für deine Hinweise. Aber etwas ist wohl noch falsch rüber gekommen:
Ich möchte nicht ein CMS verwenden (also doch schon, aber..), sondern selbst eins programmieren ;)
 

ComFreek

Mod | @comfreek
Moderator
Du willst wirklich dein eigenes PHP-Framework erstellen? Mach das bitte nicht.

1. Zu viel Arbeit. Zeit ist Geld.
2. Wieso das Rad neu erfinden? Es gibt schon genügend freie Frameworks.
3. Wenn du dir ein bekanntes Framework schnappst, dann kannst du dir sicher sein, dass da schon ziemlich viele Augen sich den Code angeschaut haben. Die Wahrscheinlichkeit, dass Bugs (v. a. sicherheitskritische) vorzufinden sind, ist geringer als bei eigens kreiertem Code.
4. Wie soll der Programmierer nach dir deinen Code verstehen? Zu fertigen Frameworks gibt es zuhauf Dokumentation, Community-Support und auch Updates!

Also such dir bitte ein fertiges Framework aus :)

PHP und HTML wirst du nie ganz trennen können, an irgendeiner Stelle müssen sie interagieren.
Der Knackpunkt ist nur der, dass du die Business Logik deiner Applikation von dem die Ausgabe generierenden Teil trennen sollst.
Als Stichwort sei hier das "MVC"-Prinzip unter anderem genannt.
 

DexXxtrin

Erfahrenes Mitglied
All deine Argumente versteh ich und sind mir klar, dennoch habe ich da ein paar dafür:
- Ich will etwas lernen
- Ich will verstehen, begreifen wie es aufgebaut ist und wie es abläuft.

Klar kann ich auch einfach Theorien lesen oder Code anschauen, aber meines Erachtens ist der Lerneffekt immernoch am grössten, wen man selbst etwas macht und dabei auf Knackpunkte stösst und diese löst.


Der Knackpunkt ist nur der, dass du die Business Logik deiner Applikation von dem die Ausgabe generierenden Teil trennen sollst.
Genau das meine ich und ist das, was mich interessiert. Gibts dazu gute Beispiele, Erklärungen o.ä.?

Ich nehme an mit dem MVC-Prinzip ist das gemeint: http://de.wikipedia.org/wiki/Model_View_Controller
Werde mir das mal genauer ansehen.
 

ComFreek

Mod | @comfreek
Moderator
- Ich will etwas lernen
- Ich will verstehen, begreifen wie es aufgebaut ist und wie es abläuft.
Genau, nur hatte ich deinen ersten Beitrag so verstanden, als ob es ein richtiges Projekt (für einen Kunden) wäre und kein privates ;)

Ja, MVC = Model View Controller

Als Link kann ich die natürlich eine alte Zeichnung von mir empfehlen: http://stackoverflow.com/a/12138988/603003 :D
Der deutsche Wikipediaartikel sieht mir ein bisschen aufgebläht aus (ohne jetzt einen genaueren Blick geworfen zu haben). Der englische Artikel fasst meines Erachtens die drei Komponenten M, V und C prägnanter zusammen: http://en.wikipedia.org/wiki/Model–view–controller

Das MVC-Prinzip kannst du dir praxisnaher auch mal bei einigen Frameworks anschauen. CakePHP hat dazu auch eine Kurzanleitung: http://book.cakephp.org/2.0/en/cakephp-overview/understanding-model-view-controller.html
 

DexXxtrin

Erfahrenes Mitglied
Mein Fehler, da hab ich mich wohl zu ungenau ausgedrückt. :)

Besten Dank ComFreek. Ich werde mich da wohl in den nächsten Tagen etwas einlesen und schauen wie ich das dann umsetzten kann.

Bei der Zeichnung gefällt mir der Disclaimer am besten :D