Felix Riesterer: Wie Darstellung und Inhalt trennen?

Beitrag lesen

problematische Seite

Lieber borisbaer,

ich habe endlich begriffen, was du damit gemeint hast.

:-) das ist eine Errungenschaft! Ganz ohne Ironie: Es dauert, bis man sich als Laie zu solchen Denkmustern durchgearbeitet hat. Es ist ja auch nichts Intuitives daran, denn Software ist immer etwas Komplexes.

Seitdem ich mehr über MVC-Frameworks weiß und wie man damit arbeitet,

Das ist noch einmal ein dickes Brett zu bohren. Viele Web-Applikationen von Laien haben das nicht, weil es noch einmal eine Schicht Abstraktion mehr ist. Wenn Du damit zurecht kommst, dann nur weiter so!

Alles an Textdaten wird in JSON-Dateien gelagert

Ist das anstelle einer Datenhaltung mittels einer (SQL-)Datenbank? Prinzipiell keine schlechte Idee, weil es einen Angriffsvektor weniger hat (SQL-Injektionen). Vor allem wenn die Datenmenge überschaubar klein bleibt, und wenn die Komplexität der Daten gering ist (wenn keine Bezüge zwischen Daten bedacht werden müssen wie z.B. „alle Datensätze mit den Merkmalen X=a und Y im Bereich von b und c“), braucht es auch keine Datenbank. Selbst wenn Inhalte in mehreren Sprachvarianten angeboten werden sollen, sind JSON-Dateien eine gute Idee.

und die Darstellung wird ganz über Templates gesteuert. Keine haufenweise include-Befehle mehr.

Templates in PHP sind kein triviales Thema. Es gibt eine Reihe von guten Ansätzen, wie man das umsetzt. Je nach Anforderungen kann es nötig sein, eine Template-Sprache einzusetzen (PHP war ursprünglich genau das) wie z.B. Smarty. Mein Link auf unsere Einführung zu Templates sollte zeigen, dass das auch weitaus simpler gestrickt sein kann. Die Idee bleibt weiterhin, dass man gewisse Bereiche voneinander trennt. Und das setzt Du ja bereits um.

Auf Template-Engines verzichte ich momentan, da ich ja keinen fremden Designer habe, der kein PHP kann. Insofern ist doch ein bisschen PHP in meinen HTML-Templates. Ich finde es nicht wirklich übersichtlicher, z.B. Twig-Synatx zu benutzen, nur um kein PHP im HTML zu haben (oder HTML im PHP, wie du meintest).

Twig? Habe ich noch nie von gehört. Meinst Du Twig für Symfony? Wie gesagt, es kommt immer darauf an, was man benötigt, und wie man es umsetzen möchte.

Wichtig wäre es wohl gewesen, auf PHP OOP zu verweisen, denn das kannte ich zu dem Zeitpunkt so gut wie gar nicht.

Diese Art zu programmieren ist ebenfalls nicht intuitiv. Mein Lernweg begann mit nicht-objektorientierten Schreibweisen. Mag an meiner Altersgruppe liegen (bin mit dem C64 aufgewachsen), aber meine ersten Programme habe ich in BASIC und dann in Assembler geschrieben. Das hat nichts mit Objekten zu tun gehabt. Daher musste ich wirklich viel dazulernen, bis ich das Konzept wirklich verwenden konnte. Und selbst heute tendiere ich in PHP immer wieder zu prozeduraler Schreibweise, obwohl ich es mir damit nur unnötig schwer mache. In JavaScript fällt es mir dagegen deutlich leichter OOP einzusetzen.

Wollte nur kurz Rückmeldung geben. 😜

Das hat mich sehr gefreut! Und ich wünsche Dir weiterhin viel Spaß am Lernen und natürlich viel Erfolg für Deine Web-Projekte.

Liebe Grüße

Felix Riesterer