According to Rasmus Lerdorf:
> > > Those introduce more complex problems.
> >
> > And they are, of course, inevitable with almost any templating
> > system.
>
> You know, PHP was once just a templating system.
[...]
> Then I figured it would be a good idea to add stuff like
> IF/LOOPS/etc so I could manipulate my tags a little bit.
>
> Now, 5 years later, people are writing template systems that sit on top of
> PHP because they are writing business logic in PHP which means yet another
> template system is needed to separate code from layout.
>
> I wonder how many layers of templates we will have 5 years from now.
I think a lot of unnecessary complexity comes from the fact that
most of the template systems (and apache modules in general) want
to output the html as a side effect instead of accumulating the
page in a buffer or just returning a string containg the html plus
a status value to the caller. This means that you can't easily
make nested sub-pages without knowing ahead of time how they
will be used, and worse, if you get an error in step 3 of generating
a page you can't undo the fact that steps 1 and 2 are probably already
on the user's screen. If the template language offers some
flow control and logic and the ability for one 'page' to return
a status plus a string containing it's html to another page that
includes it then you wouldn't need a different template system
to separate logic from layout, you would just put them in different
pages, letting the 'code' page include the layout elements it wants.
Les Mikesell
[EMAIL PROTECTED]