No decisions have been made, but I like the discussion, keep it coming.
The needs of the developers will ultimately drive the result. So, I'm
going to give some more of my thoughts :)
Let's back up a bit and look at the bigger picture. A fundamental design
aspect of Smarty is to insulate the view (templates) from the business
code, and this is by way of a simplified tag-based syntax. It should be
a safe assumption that when you are in a template, you are not in a PHP
script. A template is static text interspersed with {tags}. The {tags}
are designed to process dynamic presentational content, nothing else.
You should be able to put any text outside of {tags} and rest assured it
will be treated as such. If we process <?php ?> tags in the templates,
you have just broken that insulation.
If you follow this insulation design, the organization of your
application should fall right into place. There should be no need to
inject PHP into a template, as all presentation items should be assigned
there. Anything you want to process at-run-time from within a template
should be handled with a proper plugin that returns the presentational
content back to the view, and we maintain our insulation and tag-based
syntax. If you are injecting PHP in the template, I'm going to guess
that 99.9% of the time you really are mixing business logic into the
view, because there would be no reason to include php that just echo's
static content. Also, wrapping your code in Smarty plugins will ensure
that the features (or future features) of Smarty can apply to any
logic/content that is processed in the templates.
With that said, even if you feel that somehow injecting PHP in the
template is a good/easier thing to do, then there are several ways to go
about it, even if Smarty drops direct support. That is, create a
plugin/resource for it (preferred, keep it separate), or create a block
function or filter and inject it directly (bad design.)
So the decision is, enforce the good habits by dropping support for
things that create bad habits, or leave them in and let the developers
decide. I'm going off of the history of the {php}{/php} tags, and the
havoc they have created over the years. It's amazing to me, how many
first-timers using Smarty don't care to learn how to use it properly,
and instead dive straight for the {php}{/php} crutch once they find that
in the manual.
Monte