Im Zuge einer anderen Frage bin ich auf die Idee gekommen, mal in die Runde zu fragen was Ihr so über Template System, Performance, OOP Verwendung und MVC denkt. Ich werfe mal 3 System in die Runde: Zend Template System Pear HTML_Template_Sigma (http://pear.php.net/package/HTML_Template_Sigma/redirected) Smarty
Was fällt Euch dazu so ein, Vorteile => Nachteile, Wartbarkeit, Einarbeitungszeit ....
Bin gespannt, wie so die Meinungen hierzu sind.
LG Jens
UPDATE Schade ich hatte schon die Hoffnung hier mehrere Meinungen/Aussagen zu erhalten. Vielleicht hat der eine oder andere noch etwas hinzu zu fügen :-)
eine Template-Engine zu verwenden hat meiner Meinung nach ganz bestimmte Vorteile:
Du kannst eine Pattern wie MVC optimal umsetzen
Du kannst Logik und Präsentation sehr sauber trennen und wirst sogar dazu gezwungen es zu tun (geht ein wenig mit Punkt 1 einher).
Es hilft dir deinen Code öfter wieder zu verwenden da er nicht in direkt in eine HTML Seite integriert ist
Du kannst die Arbeit zwischen Entwickler und Designer auftrennen. Wenn du bekannte / gängige Template-Engines benutzt, kann der Designer dich optimal unterstützen. Er muss sich nicht lange in ein bestimmten Code eindenken wenn er schon erfahrung mit Template Engine X hat
Mein favorit ist Smarty, weil es gut Dokumentiert und weit verbreitet ist
Der Performance-Verlust ist schwindend gering und die Vorteile überwiegne die Nachteile. Natürlich braucht man für eine ganz kleine Website nicht zwingend MVC und eine template Engine
Zu guter letzt noch ein Zitat einer großen Website:
Hostelz.com is the largest hostels guide on the web, featuring over 43,000 listings in over 8,600 cities worldwide. The site has been helping travelers find hostels for nearly 10 years. It offers reviews and comments from guests, and an online booking system that does a meta-search of the major hostel booking websites to allow users to compare prices and find available beds.
We've been using Smarty as the template system for Hostelz.com since 2002. We believe a template system is necessary for large scale websites so that the design elements of the site are uncoupled from the underlying programming code. Smarty allows our graphic designers to sculpt the look of the site without needing to touch any of the PHP code that powers it. We also use Smarty's config files to separate out text from the from templates into separate files so that our translators can translate it to create foreign language versions of the site.
Smarty's sophisticated caching system is a key part of what makes our site perform significantly faster than our competitors. After the first time a page is accessed, subsequent requests for the page usually come directly from the cache, allowing pages to load almost instantly without querying the database. The performance difference is noticeable and it results in a much better user experience for our visitors.
Smarty has been invaluable to the development of Hostelz.com. Thanks!
Ich hätte zumindest hinzuzufügen: Warum ist das hier ne Antwort und kein Kommentar? Antworten sind als Antworten gedacht (logisch) und werden nach ihrer Bewertung sortiert. Sollte also mal der Fall eintreten, dass es mehrere mehr oder minder hilfreiche Antworten gibt, wird diese hier mehr oder minder aus dem Kontext gerissen.
Fazit: Für Einträge dieser Art gibt es die Kommentarfunktion :)
Deine Frage ist recht "allgemein" gehalten, dass man kaum mehr Antworten kann, als Nicolai schon gemacht hat.
Vor der Frage nach dem Template-System (dass man eins verwenden sollte steht für mich ausserfrage) steht eigentlich die Frage: nutzt Du ein Framework? Denn in den Frameworks ist meistens schon ein "default" Template-System integriert. Ob nun das von Dir genannte Zend, oder z. B. Twig im Symfony2 Framework. (Die Symfony2 Doku zum Template ist ggf. lesenswert.)
Wenn Du Dich für ein Framework entschieden hast, würde ich prüfen, ob Du mit dem vorhandenen Template System klar kommst. Wenn nicht, dann kannst Du immer noch nach anderen suchen.
Ich nutze ich einem OpenSource Projekt noch sehr viel Smarty2. Es ist relativ simple, sich dort einzuarbeiten. Da der restliche Code leider noch nicht wirklich gut strukturiert ist, kommen da OOP, MVC, etc. nicht zum Einsatz.
Antworten sind als Antworten gedacht (logisch) und werden nach ihrer Bewertung sortiert. Sollte also mal der Fall eintreten, dass es mehrere mehr oder minder hilfreiche Antworten gibt, wird diese hier mehr oder minder aus dem Kontext gerissen.
Fazit: Für Einträge dieser Art gibt es die Kommentarfunktion :)