I'm about to try your code for the form-filling, as I like the simplicity of the idea. You said that you like separating application logic (PHP code) from display (HTML) as much as possible - I'd like to apply this principle to the webpage as a whole.
Normally my PHP classes have a render method that generates the HTML, as I am doing the site top to bottom. However, on the project I am currently working on, I'd like to be able to let a designer do the HTML and CSS separately. So my question is, what have you found to be the best method to keep HTML out of PHP?