PHP is awesome. Itís widely used, has its roots in true system programming languages like C and has perhaps the best and biggest development community. While I donít claim to be a PHP expert, I did spend 4 years making my living as a LAMP ( Linux, Apache, MySQL, PHP ) developer.
When I first began coding, it was a horrible mess and yes, the first thing I ever coded was ďHello World!Ē I didnít declare variables, didnít comment code and certainly didnít bother writing functions or classes to make my job easier. I remember the first time I found a function to write the date on the bottom of my web site and I thought it was the coolest thing since sliced bread! Naturally, as time went on I learned to utilized functions to make my job easier, made beautiful descriptive comments and even declared my variables. As I took on bigger and bigger projects, my code had to improve as it became too time consuming to do things the way I had been doing them.
Once I had mastered functions, I moved onto Object Oriented Programming, in other words, PHP Classes. When I first started utilizing classes in my work, I was like Columbus discovering the New World. My coding life became a breeze and I was completing projects in record time with beautifully formatted code that was fast! I utilized classes for database interaction, time formatting, file and image based functions, networking functions and more. I worked with so many amazing PHP classes during my time as a freelance developer, however, I think the best class I ever came across was the Smarty Template Engine. So, now that Iíve exhaustively gone on about myself for what seems like ages, I will get to the meat and potatoes, Smarty.
If you are not familiar with template engines, there purpose is to allow developers to separate front-end code with back-end code. This allows a designer or design team to create and modify the graphical front-end of a web application without affecting the back-end PHP code. There are a lot of different template engines out there such as patTemplate, PHPTAL, FastTemplate, SimpleTemplate, Savant and more. I personally used both patTemplate and FastTemplate, however, none of them seemed to have the flexibility and extensibility of Smarty. Interestingly enough, the developer of FastTemplate also loves Smarty, which you can see from this post. Smarty is really much more than a simple tag replacement class, in fact, itís more of a template framework.
If you are new to PHP templates, you might feel like learning Smarty is like learning an entirely new programming language. If youíve ever worked with Cold Fusion, it will make a lot of sense to you as itís a tag based syntax. Smarty is also very familiar to PHP developers as its variable prefix uses the familiar dollar sign ($) and its if, then, else statements also work similarly to PHP. Smarty has an enormous catalog of functions that allow developers and designers to get very creative with their presentation layouts in addition to providing developers with enormous flexibility. I would argue that the best, albeit most dangerous capabilities of Smarty is that it allows execution of PHP code directly within the template. If you are a developer and possess full control over your codebase, I would never recommend this. If, however, you are working on an encrypted third party application that uses Smarty, you will be limited to editing only the templates and then having PHP coding capabilities can be absolutely wonderful.
Smarty is a very easy system to deploy, does not require additional system resources and integrates with any PHP deployment. Smarty is a system that many of us SolarVPSers know well and its easy to deploy on any VPS or Dedicated Server running cPanel or Plesk. Smarty can even be installed on Windows!
You can obtain more information about Smarty here: http://www.smarty.net
For more information regarding PHP, go here: http://www.php.net
Author: Ross Brouse