- Smarty
Infobox Software
name = Smarty Templates
developer = Monte Ohrt, Messju Mohr
latest_release_version = 2.6.20
latest_release_date = 15th Aug 2008
genre = Template Engine
license =LGPL
website = [http://www.smarty.net/ www.smarty.net]Smarty is a
web template system written inPHP . Smarty is primarily promoted as a tool forseparation of concerns , which is a common design strategy for certain kinds of applications. [Smarty separatesPHP code, (often represented asbusiness logic ) fromHTML , (often represented aspresentation logic ).] cite book
first = Terence John
last = Parr
title = Enforcing strict model-view separation in template engines
publisher = Proceedings of the 13th international conference on World Wide Web
year = 2004
id = 1-58113-844-X ]Smarty generates web content by the placement of special "Smarty tags" within a document. These tags are processed and substituted with other code.
Tags are directives for Smarty that are enclosed by template delimiters. These directives can be variables, denoted by a dollar sign ($), functions, or logical or
control flow statements. Smarty allows PHP programmers to define functions that can be accessed using Smarty tags.Smarty is intended to simplify compartmentalization, allowing the presentation of a web page to change separately from the back-end. Ideally, this eases the costs and efforts associated with
software maintenance . Under successful application of this development strategy, designers are shielded from the back-end coding, and PHP programmers are shielded from the presentation coding.Smarty supports several high-level template programming features, including:
*
Control flow statements,foreach
* if, elseif, else
* variable modifiers - For example {$variable|nl2br}
* user created functions
* mathematical evaluation within the templatealong with other features. There are other template engines that also support these features. Smarty templates are often incorporated into existing PHP web applications to some extent. More often it is used where a web application or a website has a theme system built into it, where the templates can be changed from theme to theme.
Code example
Since Smarty separates PHP from HTML, you have two files:
In the business logic code you can configure Smarty to use this template:
Notes and references
External links
* [http://www.smarty.net Official site]
* [http://devzone.zend.com/article/1238-PHP-Templating-with-Smarty "PHP Templating with Smarty"] by Cezar Floroiu - Smarty tutorial
* [http://www.devpapers.com/article/18 "Smarty vs. XML/XSLT"] - from DevPapers.com by Sergey Makogon
* [http://hasin.wordpress.com/2006/06/10/smarty-cheat-sheet-version-20/ Smarty Cheat Sheet] Smarty Cheat Sheet for Templates Designers and Programmers
* [http://www.timestretch.com/php_intro/?page=smarty Timestretch: "PHP, MySQL, and Smarty Programming"] - Also see the PHP2 page for more.
Wikimedia Foundation. 2010.