[SMARTY] Feature req/idea: storing variables in cached templates

Joey Korkames <[email protected]> Tue, 17 Jul 2007 03:02:12 -0700
Newsgroups gmane.comp.php.smarty.general
Message-ID <[email protected]>
Hi Smarty team, just wanted to start by saying that you've all built a 
great piece of software. It's fantastic.

I had a little conundrum which is not really killing me but it leaves 
just a niggling little want.

I was wondering how breaking it would be to be able to load variables 
from a precompiled/cached smarty template and use these variables in 
one's application code, before displaying that cached template (using a 
func like get_cached_template_vars() 
<http://smarty.php.net/manual/en/api.get.template.vars.php> ) . I was 
looking at those 2 lines of metadata in the cached template files, which 
gave me the idea. I figure that, for recovering very small procedural 
booleans, it beats the hell out of building your own data caching store 
when smarty's is already so well done.

My specific application of this is have dynamically-generated HTTP 
headers (containing a seed-value from the time the template was 
compiled) sent before my cached HTML templates, which can only be done 
from the application code and not in any portion of the smarty toolchain 
(from all the ways I've tried to test). Maybe I'm wrong there, but I 
ain't bright enough to prove it. I don't see the smarty class putting 
any uninvited carriage-returns (and other weird text) between the 
header()s it does and the echo() of the compiled template, but I imagine 
PHP does some protection and special lexing of header() calls vs. echo() 
(like when I try to put the raw HTTP header text in the template) - 
enough difference to make the web server change from the HTTP track to 
the HTML track and thus making my headers go out as content instead of 
preceding it.

If my idea ain't ludicrous, I venture there should also be an attribute 
to smarty->assign() that would be specified by the programmer to 
indicate each variable that he would like stored with cached  template, 
rather than smarty assuming it should be so (in case of large arrays and 
such)?

Unless I'm missing something, it doesn't seem like outputfilters are 
applied to display()s of cached templates - and even if they did, the 
lazy dev is still obligated to find a place to store/retrieve his old 
variables from.


Thanks,
Joey

-- 
Smarty General Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php