For larger websites, it is pretty common to have a team composed of specialists who will do separate tasks for the front-end and the back-end of an application. The front-end workers are typically concentrated on aesthetics and usability of the websites that are going to be made, while the back-end workers take care of the integrity of the data in the system.
Unfortunately, this has resulted into problems for teams whose members have completely different backgrounds. Presentation coding become part of the code tweaked by the back-end workers, while same goes for those who are in the frontline. What is needed is a tool that will ease this separation of tasks.
One of them is the Smarty templating engine, a web template system written in PHP. During my internship last summer I mainly had to work on this system. Fortunately I was able to accomplish it after a couple of weeks of studying the API and practice.
In a nutshell, Smarty creates web content by using what we call Smart tags, which then reference to some other code upon the generation of the HTML pages. These directives are usually variables or logical constraints. This mechanism allows the PHP programmers to create custom functions that may be used by using the Smarty tags. By compartmentalizing these functions and separating them from the code concerned with the presentation of a site, software maintenance is eased and that would mean more productivity for everyone.
For someone who just learned that time how to program in PHP for the first time, studying how the code worked was surely a mess. The learning code was steep and we had to do some trial-and-error tests before I was able to come out with what I want. Also, I felt like the API was too heavy. Some functions could've been put even more basic, I think. But if you're cool with this set-up, I don't think there's nothing wrong in trying it. I guess if you've already mastered it, then creating websites should be an ease.