Templatesystem wann sinvoll? (Mobile Seite?)

String

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein etwas größeres Projekt vor mir. In der heutigen Zeit, will ich meinen Benutzern natürlich auch die möglichkeit geben über Handy oder ähnliches zu surfen. Auch an die Barrierefreiheit will ich natürlich denken und ein Template mit größerer Schrift und oder schöneren Kontrast könnte man leicht anbieten.

Jetzt gibt es natürlich auf der einen Seite die Vorteile für ein Template System:
- perfekte Code-Trennung
- Arbeiten am Template auch ohne PHP-Kentnisse
- (in meinen Augen) das einfachere Arbeiten am Design
- Verschiedene Designs für eine Homepage

Kontra ist natürlich die Perfomance, die darunter leidet.

Jetzt gibts natürlich auf der einen Seite Leute die sagen, wahh.. niemals! PHP ist schon eine Template sprache dank <?=$hallo;?> -> spätestens bei schleifen ist damit auch schluss. Und auf der anderen Seite gibts wohl leute die Sagen, dieses PHP+HTML+CSS gewirr, ist einfach nur hässlich und nicht überschaubar..

Deswegen frage ich euch. Ist der Rechenaufwand für die saubere Trennung von Code und HTML nicht schon Grund genug, für ein Template system?
Wie sonst, ermöglicht ihr es, dass eure User bze. ihr eure Seite in verschiedenen Designs anbietet?
Die homepage 3 mal zu programmieren ist wahrscheinlich ziemlich unsinnig, oder?

Die Frage wurde wahrscheinlich schon 100.000 mal abgeleiert. Allerdings habe ich kein relativ neues Thema gefunden und wer beim Programmieren nicht mit der Zeit geht, sollte es wahrscheinlich gleich lassen :)

Ich hoffe (und ich weiß in diesem Forum treiben sie sich rum :P ) ein paar von den PHP-Göttern antworten ihre Meinung auf mein Thema :)

string
 
Ich persönlich arbeite immer mit Templates. Selbst wenn ich nur ein Design anbiete. Wie du bereits geschrieben hast, vereinfacht es vieles.
Die Frage ist eher, welcher Art ist das Template-System. Brauch ich für das Projekt ein ausgereiftest grosses System oder reicht es eine einfach Trennung der Dateien zu machen mit einem einfachen Parser.
 
Danke schonmal für die Antwort. Zu dem, was man denn so braucht:
Also wenn, kommt mir nur ein selbst entwickeltest Template-System ins Haus. Das kann dann halt nur genau so viel wie ich benötige, und ich denke, dass reicht dann auch ;)

Deine wikis gefallen mir, selbst geschrieben?

string
 
Über was für eine Template Engine reden wir denn hier? Smarty oder etwas in die Richtung?

Du hast meinen größten Kritikpunkt an einer Smarty Engine bereits genannt: Code-Trennung

Eine Trennung von HTML und PHP Code ist meiner Meinung nach nicht nötig. Es geht hier um eine Trennung der Logik!
Und das bedeutet, dass man Programmlogik und Anzeigelogik trennt. Eine Schleife zum wiederholten Ausgeben eines Datenobjekts ist aber eindeutig Anzeigelogik und hat deshalb in der Programmlogik nichts zu suchen.

- Arbeiten am Template auch ohne PHP-Kentnisse
Gut, das ist eventuell ein Punkt, aber ich denke jeder Designer versteht sowas wie:
PHP:
<div><?php echo $data['key']; ?></div>
Und wäre in der Lage hier etwas zu ändern... Nur weil etwas im Design auftaucht, muss man sich nicht davon verunsichern lassen.

- (in meinen Augen) das einfachere Arbeiten am Design
Das müsstest du mal näher erklären?

- Verschiedene Designs für eine Homepage
Je nach dem wie du die Unterscheidung machst, ist es auch kein Problem mit PHP selbst hier unterschiedliche Versionen zu laden.

Und ja, die Homepage 3mal zu programmieren ist Schwachsinn, aber bei den Templates gibt es verschiedene Ansätze...
Entweder man entwickelt ein Layout 3x so wie man es haben will oder man hat ein Standardlayout, z. B. ein Gridaufbau o. ä., und passt es über CSS komplett an...
 
Wir reden hier über keine Template Engine. Wie ich schon schrieb, käme mir nur selbst gemachtes in Haus. Genau soviel wie gerade nötig, nicht mehr.

PHP:
<div><?php echo $data['key']; ?></div>
mag man ja noch verstehen. Aber bei schleifen siehts ganz anders aus. <? foreach($data as $key) { ?> HTML <? } ?> -> Wo ist das noch sinvoll? Da knall ich lieber gleich das ganze HTML ins PHP und verzichte auf Templates.

Nunja, was ich z.b. meine mit "einfachere Arbeiten am Design" is, dass
Code:
<tr><td>{NAME}</td> <td>{MAIL}</td><tr>
einfach jeder mit klar kommt. Sei es Editor, noch mensch vor dem PC. Selbst wenn ich die Seite einfach im Firefox öffne, sehe ich ob sie aussieht, wie sie soll..

string
 
Also ich hab vor Jahren ein komplettes Community-System selbst programmiert, das auch immer noch online ist. Ich war damals völlig begeistert von Smarty. Zu jeder Seite gabs im Prinzip zwei Dateien: eine mit der Logik und eine Smarty-Datei.

Dein beschriebenes Vorhaben kommt mir eher wie Spielerei vor. Wie lange kommst du denn mit dieser einfachen Form von Platzhaltern klar?

Mein persönlicher Eindruck. Solange deine Template-Engine so einfach ist, wie von dir beschrieben, hast du kaum Ersparnis oder Hilfe, weil der Code sowieso so einfach ist, dass jeder damit klarkommt.

Sobald du aber etwas krasseres machen möchtest, hilft dir deine Engine doch eh nicht mehr weiter und du bastelst eh PHP-Code.

Ich habe damals für mein Forum mit allen Tricks von Smarty gearbeitet und fand das lange sehr gut. Vor etwa ein bis zwei Jahren habe ich meine Ansichten geändert. Zumindest für Projekte, die ich eh alleine programmiere und wo kein Designer jemals eine Datei anfassen muss.

Ich bleibe allerdings dabei, Logik und Design streng zu trennen. Allerdings arbeite ich nur noch mit einer Datei. Die Aufteilung in zwei Dateien wäre allerdings kein Problem.

Weil für mich Konstruktionen mit Schleifen oder If-Abfragen in Verbindung mit HTML sehr schnell unübersichtlich werden, habe ich mir generell für PHP die alternative Schreibweise angewöhnt (mit endif, endforeach, endwhile).

So erspart man sich <?php } ?> was ich schon immer ziemlich ätzend fand.
 
Da bin ich eben auch mal drüber gestolpert:

PHP:
<? foreach($data as $key): ?>
HTML
<? endforeach; ?>
.. das meintest du doch oder?

Finde ich durchaus einen interessanten ansatz.. Ist zwar nicht ganz so schick wie Templates, aber immerhin kann man PHP und HTML fast komplett trennen.

Werd mal schauen, was sich in diese richtung machen lässt.

string
 
Genau das meinte ich. Ich hatte sowieso immer wieder Kommentare in meinem Code, die so aussahen:
Code:
if (foo) {
.... viel code
} // if foo

Ich hab ne Weile gebraucht, aber ich habe mich inzwischen an diese Schreibweise gewöhnt und finde sie auch besser lesbar. Den größten Vorteil sehe ich allerdings in Verbindung mit HTML-Code - gerade wenn ifs und foreachs und weißichwas zusammenkommen.

Allerdings gebe ich mir immer sehr viel Mühe, meinen Code so zu gestalten, dass ich auch noch nach langer Zeit damit klarkomme. Den Willen braucht man wohl zum Umstieg :-)
 
Ich werd das jetzt einfach mal so versuchen.
Wenn ich noch ein paar Probleme habe oder Fragen, setze ich das Thread wieder auf ungelöst :)

Danke

string
 
Zurück