Smarty is a template engine for PHP. One of the unique aspects about Smarty is that it compiles the template files into native PHP scripts upon the first invocation. After that, it just executes the compiled PHP scripts. Therefore, there is no costly template file parsing for each request, and each template can take full advantage of PHP compiler cache solutions such as Zend Cache (http://www.zend.com) or PHP Accelerator (http://www.php-accelerator.co.uk).
Some of Smarty's features:
It is extremely fast.
It is efficient since the PHP parser does the dirty work.
No template parsing overhead, only compiles once.
It is smart about recompiling only the template files that have changed.
You can make custom functions and custom variable modifiers, so the template language is extremely extensible.
Configurable template delimiter tag syntax, so you can use {}, {{}}, <!--{}-->, etc.
The if/elseif/else/endif constructs are passed to the PHP parser, so the {if ...} expression syntax can be as simple or as complex as you like.
Unlimited nesting of sections, ifs, etc. allowed.
It is possible to embed PHP code right in your template files, although this may not be needed (nor recommended) since the engine is so customizable.
Built-in caching support
Arbitrary template sources
Custom cache handling functions
Plugin architecture