Hi, I am Daniel Smith, the author:
I use heredocs SPECIFICALLY so that I do not have to write things such as:
WHERE field='1' ";
Which introduces a new level of quoting.
As far as reading complete templates into a variable, so that the template is free of PHP assignment statements.. Yes, that is true. It's a little more work, in a sense, if there is a middle section of the template that gets repeated.. it has to be broken out (via HTML comments or otherwise) so that it gets assigned to a different variable (or element in an associative array)
In other words, if you have a template of head, middle, and tail sections, you can break them up into seperate heredocs, or you can read a straight HTML file in and muddle through it, breaking up the sections afterward. Think of the middle section as any variable number of results (a table, a collection of photos, etc.)
You may want to take a look at my example demo file.
It is at: http://www.onlamp.com/php/2003/04/10/examples/hd-demo-1.0.tgz
as an aside: I did not get into caching in my article, but it is something I am working on for my project. I don't want to simply read in templates for every invocation if I don't need to.
The reason I approached things this way in the first place was because I wanted to keep my package as self-contained as possible (fewer dependencies for future admins to deal with), but I also wanted to handle different languages and interfaces.