Re: [SMARTY-DEV] Bringing the {insert} functionality to other tags

From: Date: Wed, 04 Sep 2002 19:59:28 +0000
Subject: Re: [SMARTY-DEV] Bringing the {insert} functionality to other tags
Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-255@lists.php.net to get a copy of this message
If I understand correctly, the functions would just return text. What I don't like about this approach is that they don't use templates. Maybe add a template param. I really like this approach though: template: cache this.... {no_cache} date :{$smarty.now} {/no_cache} more cached ... ------------ Everything in one template. Gerard >>>>>>>>>>>>>>>>>>>>>>>>> I'm not for certain how it will be done, I myself haven't had a whole lot of time to devote to it lately. First I'd like to see some things cleaned up in the engine. Break apart the functionality of the "rendering pipeline" so each piece is clearly defined. At the moment a lot of things are clumped together in the display() function which I'd like to see organized a bit better. Method calls come with a slight cost, so of course things must be weighed/tested/tuned. This may lead to things like putting the caching/compiling functionality into plugins, simplifying the core engine and making it easy to drop in other functionality. Anyways, on to caching. I have had very little thought on how caching would work, so I'll try it now :-) One idea (and probably most workable) is to cache on a function-basis. Two methods come to mind, either you cache nothing and register which functions get cached, or cache everything and register which functions _don't_ get cached (currently how {insert} works). Either way, no cache markup is necessary in the templates. If you want a particular function cached/uncached, you register/unregister it. This way all existing templates can support new caching methods without modification. Also the template functions should not require caching support, they should work without modification. This keeps the caching in an isolated layer in the template engine as well. Ok some ideas how this might work. Those of you finding these examples in the mailing list archives, Don't send e-mail telling me you cut-n-paste and they don't work. ;-) example: $this->caching = true; $this->register_cache_function('get_poll'); or: $this->caching = false; $this->register_nocache_function('get_poll'); // ??? Then the output of this template function would get cached (or not cached): {get_poll id=2} Maybe an optional second parameter designates the lifetime: register_cache_function('get_poll',300); How to handle the concept of "cache none except these functions" and "cache all except these functions" ? I'm not sure if we should support one or both. If both, do we use different function names, or parameter values, or ? This will probably take some experimenting. Of course there are functions that wouldn't make sense to cache, and presumably numerous other issues to think through. Monte Ivo Jansch wrote: > Hi, > > a reply to a mail from a few weeks back... > > Monte Ohrt wrote: > >> I think one of the next major feature changes in Smarty is updating >> the caching mechanism, so now is a good time to discuss it. I like the >> idea of having the programmers decide which functions are not cached, >> as opposed to using tags in the templates. > > > What are your current ideas towards implementing this? Do you already > know how you're going to do it? > > Greetings, > Ivo >

« previous php.smarty.dev (#255) next »