There's an interesting post from Michael Kimsal over on his blog concerning an email he received from a developer over at metrofindings.com asking about the possible creation of something he called (tentatively) "Active Printers" (or "Active Formatter").

Just now I was looking at some crappy OSCommerce code, and deciding how to rip it up into a template system. And I'm talking with kyle, and the proverbial question comes up, do you give your template system objects, or strings. What if you gave it special "active record"-esque template objects. Active Printers... or something. Then you could work with everything in a consistent interface, escaping all content with htmlspecialchars if needed, etc etc. Looping through object data and making a table...

The email included a block of concept code of how he pictured it working - a pretty simple system really. Pushing data into the class and showing what tag(s) to style it with and have it "know" how to format it (like a phone number string). Michaelasks his readers if they've seen something like this before.

Comments already made include discussions of things like xmlWriter, presentation and business logic, and the Savant templating library.