- Dreamweaver templates
- PHP or Smarty includes
PHP or Smarty includes help a lot with the DRY problem. However, you are now leaving it up to each script to decide where the page elements get included. You may accidentally include the header, for example, in the wrong place in one or more pages. Also, if you need to re-arrange the overall page structure you're stuck changing every single page.
Enter Zend_Layout and the Zend_View enhancements. Zend_View is an implementation of the two-step-vew design pattern and the Zend_View enhancements are a collection of view helpers that are useful alongside Zend_Layout. Check out the Webinar and read Matthew Weier O'Phinney's article on Using Zend_View Placeholders to Your Advantage.