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