На основании опубликованной статьи: Производительность 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() полностью отпадает.
Готов выслушать ваши пожелания и предложения относительно данного функционала.
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...