На основании опубликованной статьи: Производительность CMS относительно новых и старых версий PHP, предлагаю детально обсудить возможности новой функции шаблонизатора системы.
Старая версия с внутренним кеширование содержания
Вариант новой версии с внутренним кеширование содержания
Новая функция получилась универсальной, планируется применение как для отображения списка материалов так и единичного варианта. На основании этого потребность в функции: tpl_eval() полностью отпадает.
Готов выслушать ваши пожелания и предложения относительно данного функционала.
Старая версия с внутренним кеширование содержания
if (!function_exists("tpl_func")) {
function tpl_func() {
global $blockg, $theme, $conf;
$arg = func_get_args();
$lan = array();
static $argc, $cach, $cont;
if ($argc != $arg[0] || !isset($cach)) {
$argc = $arg[0];
$cont = get_theme_file($argc);
if ($cont) $cach = create_function("\$arg, \$lan", "global \$blockg, \$theme, \$conf; return \"".addslashes(file_get_contents($cont))."\";");
}
return ($cont) ? $cach($arg, $lan) : tpl_warn("warn", sprintf(_ERRORTPL, $arg[0]), "", "", "warn");
}
}
Вариант новой версии с внутренним кеширование содержания
if (!function_exists('setTemplateBasic')) {
function setTemplateBasic() {
global $blockg, $theme, $conf;
$arg = func_get_args();
$lan = array();
static $argc, $cach, $cont;
if ($argc != $arg[0] || !isset($cach)) {
$argc = $arg[0];
$cont = getThemeFile($argc);
if ($cont) $cach = file_get_contents($cont);
}
if ($cont) eval("\$rfl = \"".addslashes($cach)."\";");
return ($cont) ? stripslashes($rfl) : setTemplateWarning('warn', sprintf(_ERRORTPL, $arg[0]), '', '', 'warn');
}
}
Новая функция получилась универсальной, планируется применение как для отображения списка материалов так и единичного варианта. На основании этого потребность в функции: tpl_eval() полностью отпадает.
Готов выслушать ваши пожелания и предложения относительно данного функционала.
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...