php.de

Zurück   php.de > php.de Intern > Beitragsarchiv > Adventskalender 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.12.2009, 00:00  
Adventskalenderöffner
 
Benutzerbild von Nikolaus 2.0
 
Registriert seit: 27.11.2008
Beiträge: 72
PHP-Kenntnisse:
Fortgeschritten
Nikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nettNikolaus 2.0 ist einfach richtig nett
Standard 26: Eine Frage der Schablone

26:
Diskussionen über TempIate-Engines fehlen in keiner Kalender-Woche im PHP.de-Forum. Warum also soll das Thema im Advents-Kalender ausgespart werden? Richtig: es gibt keinen Grund!

Setzen wir uns also zunächst mit den Vorteilen von Template-Engines auseinander. Sie bieten:
  • Trennung von Code und Design oder Trennung von (Business-)Logik und Präsentation.
  • Bessere Zusammenarbeit von Designer und Entwickler.
  • Möglichkeit wiederverwendbare Elemente zu definieren.
Das alles scheint sehr verlockend, doch es werden immer wieder eine Reihe von Nachteilen genannt:
  • Großer Overhead.
  • Designer müssen erst Template-Sprache erlernen.
  • Trennung von (Business-)Logik und Präsentation nur eingeschränkt möglich.
In der Tat ist es so, dass Template-Engines als solche keine echte Hilfestellung für die genannten Vorteile sind. Der Grund? Für kleine und überschaubare Applikationen wird ein nicht zu unterschätzender Overhead an Code eingeführt und für komplexe Projekte sind die Möglichkeiten von Template-Engines nicht ausreichend.

Auch das Thema Performance wird oft als Nachteil einer Template-Engine aufgeführt. Hier ist jedoch dagegen zu halten, dass jede Art von Abstraktion in einer Software einen gewissen Anteil an Performance-Nachteil mit sich bringt. Dies soll in der Betrachtung daher keinen Rolle spielen - schließlich gibt es ja Caching!

Im Kontext von komplexen Applikationen finden sich Template-Engines üblicherweise in der Präsentations-Schicht wieder. Hier sollen sie - vielleicht sogar in der Implementierung des MVC-Pattern - zur Trennung von Logik und Präsentation eingesetzt werden. Doch gerade dort versagen tragen die Konzepte von Template-Engines zum Misserfolg bei:
  • Explizite Logik wird nur zu gerne in Templates angesiedelt (if & Co.) und führt von der Wiederverwendbarkeit weg.
  • Die Erweiterbarkeit von Tags zur Implementierung von Wiederverwendbaren GUI-Elementen ist nicht gegeben.
  • Das Zusammenspiel mit GUI-Pattern - wie dem MVC - ist nicht vorgesehen.
  • Häufige Aufgaben wie Formular-Definition oder Auslagerung von Template-Fragmenten wird nicht oder nur mäßig unterstützt.
Soll das wieder nur eine - vielleicht sogar religiös angehauchte - Aufzählung von Vor- und Nachteilen sein? Keinesfalls! Es gibt schließlich noch ein Fazit:

Template-Engines eignen sich in kleineren Projekten für den Beginn von Trennung von Ausgabe und Code. In größeren und komplexen Projekten sollte jedoch mehr Augenmerk auf die Architektur der Software selbst gelegt werden, denn zuerst nach einer geeigneten Template-Engine Ausschau zu halten.
Kleine Anwendungen sind meist überschaubar und der Einsatz von Template-Engines verbessert die Code-Struktur, in größeren und komplexeren Anwendungen ist die starre Struktur und eingeschränkte Funktion mehr Hindernis, denn Hilfestellung.

Euer Nikolaus
Nikolaus 2.0 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.12.2009, 09:41  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Ergänzend gibt es hier noch ein paar Links:
http://www.php.de/php-einsteiger/622...tml#post476174
robo47 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu Session SmileMan PHP Tipps 2008 1 08.10.2007 11:22
[PDO] Frage zur Portabilität freq.9 PHP-Fortgeschrittene 2 29.07.2005 13:28
[Erledigt] frage PHP Tipps 2005-2 9 15.06.2005 13:22
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
[Erledigt] Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Frage: gibt es bei PHP sowas wie target="_blank" PHP Tipps 2005 6 20.04.2005 06:27
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Kurze Frage an die Php Profis PHP Tipps 2004-2 11 24.11.2004 17:38
Frage zur Formatierung von Text obi PHP Tipps 2004 1 03.11.2004 13:35
Frage zum Einfügen von Fotos PHP Tipps 2004 11 26.09.2004 14:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
schablone nikolaus, nikolaus schablone, php schablone, foto messschablone, schablone php, php trennung logik inhalt tipps, nachteile messschablonen, nachteile von php, abstraktion performance

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum