You are here: Re: [SMARTY] Caching compiled non-file templates « Smarty Templates Posts « IT news, forums, messages
Re: [SMARTY] Caching compiled non-file templates

Posted by Marcus Bointon on 09/09/05 02:34

On 9 Sep 2005, at 00:05, boots wrote:

> Are you not using a custom resource to retrieve the templates from the
> db?
>
> http://smarty.php.net/manual/en/plugins.resources.php

Erm, no. At present I have this function in a Smarty subclass:

//Function takes a template in a string and compiles it through
Smarty
public function compile_string_template($templatestring) {
if($templatestring == '') {
return '';
}

$this->_compile_source('string template', $templatestring,
$source); //Source is passed by reference to be filled in
//Dump compiled version in output buffer
ob_start();
eval('?>' . $source);
$evaled = ob_get_contents();
ob_end_clean();
return $evaled;
}

Obviously inefficient, but functional - this code was from a smarty-
general posting a couple of years ago when I originally asked about
this!

Now I look at it again, the resource plugin looks promising.

> I tend to store my templates along with the features in the resource
> that are required: a name (as a path), the template source, a
> timestamp
> (usually via an automatically updated timestamp column) and the
> security level.

As I recall when I was setting this up originally - the problem is
the path - there is no path!

> Don't forget that if you are using MySQL then you ought
> use the MySql functions to convert to unix timestamps in your db
> query.

I don't use timestamps anywhere now - always ISO datetimes
(especially now that MySQL 4.1 uses them everywhere), but as you say,
conversion is not a problem. MySQL's SQL cache is my friend ;^)

> Doing this, Smarty will be able to treat your foreign templates as if
> they were local and will do all the right things in terms of
> re-compiling on an as-needed-basis.

I think my question is possibly simpler (and dumber!) - when a
template is in a string and the compiled results are too, where do
compiled versions get cached? Still in a local templates_c folder?
back in the DB? in RAM? Is that decision controllable from a plugin too?

Marcus
--
Marcus Bointon
Synchromedia Limited: Putting you in the picture
marcus@synchromedia.co.uk | http://www.synchromedia.co.uk

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация