Nur wenige Themen rund um PHP polarisieren stärker als Templates. Die Meinungen reichen von
'Brauche ich nicht, PHP reicht'
bis zu
'Nimm ein Framework mit einer leistungsfähigen Template Engine'.
Jede dieser Meinungen hat irgendwo seine Berechtigung.
Möchte hier mein Templatekonzept (Zielgruppe "Einzelkämpfer" und Plattform
Embedded Systems) kurz vorstellen und diskutieren.
- Strenge Trennung von HTML und Programmcode. Keine Logik im Template(Loops etc),
es wird kein PHP-Code im Template ausgeführt.
- integriertes Escaping (Kontextwechsel)
- Filter (raw,url,format,dateformat, eigene können zugefügt werden)
- Defaultwerte
Die Templatesyntax ist extrem einfach: Es gibt nur einen Platzhalter vom Typ
{{placeholder}}
im Template. Diese Platzhalter können optional durch Filter und
Defaultwerte ergänzt werden.
{{placeholder | filter ?? defaultvalue}} oder
{{placeholder.key | filter ?? defaultvalue}} für das Verarbeiten von Arrays/Objekten.
Wer mit Twig arbeitet dem sollte das bekannt vorkommen.
Es ist kein Erlernen einer neuen Templatesprache notwendig. Ebenso ist der "Zusatzaufwand"
für das Ersetzen der Platzhalter gegenüber der Ladezeit für das Template vernachlässigbar.
Für das Füllen der Platzhalter stehen assign-Methoden zur Verfügung, welche neben Variablen
auch Template-Objekte entgegennehmen können. Damit ist ein Verschachteln von Templates möglich.
Mich interessiert besonders:
- Was sollte ein Templatesystem unbedingt noch können?
- Welche Filter sollten fest verfügbar sein, welche nutzt ihr?
LG jspit
'Brauche ich nicht, PHP reicht'
bis zu
'Nimm ein Framework mit einer leistungsfähigen Template Engine'.
Jede dieser Meinungen hat irgendwo seine Berechtigung.
Möchte hier mein Templatekonzept (Zielgruppe "Einzelkämpfer" und Plattform
Embedded Systems) kurz vorstellen und diskutieren.
- Strenge Trennung von HTML und Programmcode. Keine Logik im Template(Loops etc),
es wird kein PHP-Code im Template ausgeführt.
- integriertes Escaping (Kontextwechsel)
- Filter (raw,url,format,dateformat, eigene können zugefügt werden)
- Defaultwerte
Die Templatesyntax ist extrem einfach: Es gibt nur einen Platzhalter vom Typ
{{placeholder}}
im Template. Diese Platzhalter können optional durch Filter und
Defaultwerte ergänzt werden.
{{placeholder | filter ?? defaultvalue}} oder
{{placeholder.key | filter ?? defaultvalue}} für das Verarbeiten von Arrays/Objekten.
Wer mit Twig arbeitet dem sollte das bekannt vorkommen.
Es ist kein Erlernen einer neuen Templatesprache notwendig. Ebenso ist der "Zusatzaufwand"
für das Ersetzen der Platzhalter gegenüber der Ladezeit für das Template vernachlässigbar.
Für das Füllen der Platzhalter stehen assign-Methoden zur Verfügung, welche neben Variablen
auch Template-Objekte entgegennehmen können. Damit ist ein Verschachteln von Templates möglich.
Mich interessiert besonders:
- Was sollte ein Templatesystem unbedingt noch können?
- Welche Filter sollten fest verfügbar sein, welche nutzt ihr?
LG jspit
Kommentar