- improvement Smarty_Internal_Utility::clearCompiledTemplate() removed redundant strlen()s

This commit is contained in:
rodneyrehm
2011-10-01 19:11:28 +00:00
parent 655cbc94bc
commit 9bd3520d97
2 changed files with 21 additions and 6 deletions

View File

@@ -2,6 +2,7 @@
01.10.2011 01.10.2011
- improvement replaced most in_array() calls by more efficient isset() on array_flip()ed haystacks - improvement replaced most in_array() calls by more efficient isset() on array_flip()ed haystacks
- improvement replaced some strlen($foo) > 3 calls by isset($foo[3]) - improvement replaced some strlen($foo) > 3 calls by isset($foo[3])
- improvement Smarty_Internal_Utility::clearCompiledTemplate() removed redundant strlen()s
29.09.2011 29.09.2011
- improvement of Smarty_Internal_Config::loadConfigVars() dropped the in_array for index look up - improvement of Smarty_Internal_Config::loadConfigVars() dropped the in_array for index look up

View File

@@ -191,6 +191,7 @@ class Smarty_Internal_Utility {
$smarty->caching = $_save_stat; $smarty->caching = $_save_stat;
if ($tpl->source->exists) { if ($tpl->source->exists) {
$_resource_part_1 = basename(str_replace('^', '/', $tpl->compiled->filepath)); $_resource_part_1 = basename(str_replace('^', '/', $tpl->compiled->filepath));
$_resource_part_1_length = strlen($_resource_part_1);
// remove from template cache // remove from template cache
unset($smarty->template_objects[sha1(join(DIRECTORY_SEPARATOR, $smarty->getTemplateDir()).$tpl->template_resource . $tpl->cache_id . $tpl->compile_id)]); unset($smarty->template_objects[sha1(join(DIRECTORY_SEPARATOR, $smarty->getTemplateDir()).$tpl->template_resource . $tpl->cache_id . $tpl->compile_id)]);
} else { } else {
@@ -199,6 +200,7 @@ class Smarty_Internal_Utility {
return 0; return 0;
} }
$_resource_part_2 = str_replace('.php','.cache.php',$_resource_part_1); $_resource_part_2 = str_replace('.php','.cache.php',$_resource_part_1);
$_resource_part_2_length = strlen($_resource_part_2);
} else { } else {
$_resource_part = ''; $_resource_part = '';
} }
@@ -208,6 +210,7 @@ class Smarty_Internal_Utility {
} }
if (isset($_compile_id)) { if (isset($_compile_id)) {
$_compile_id_part = $_compile_dir . $_compile_id . $_dir_sep; $_compile_id_part = $_compile_dir . $_compile_id . $_dir_sep;
$_compile_id_part_length = strlen($_compile_id_part);
} }
$_count = 0; $_count = 0;
$_compileDirs = new RecursiveDirectoryIterator($_dir); $_compileDirs = new RecursiveDirectoryIterator($_dir);
@@ -215,23 +218,34 @@ class Smarty_Internal_Utility {
foreach ($_compile as $_file) { foreach ($_compile as $_file) {
if (substr($_file->getBasename(), 0, 1) == '.' || strpos($_file, '.svn') !== false) if (substr($_file->getBasename(), 0, 1) == '.' || strpos($_file, '.svn') !== false)
continue; continue;
$_filepath = (string) $_file;
if ($_file->isDir()) { if ($_file->isDir()) {
if (!$_compile->isDot()) { if (!$_compile->isDot()) {
// delete folder if empty // delete folder if empty
@rmdir($_file->getPathname()); @rmdir($_file->getPathname());
} }
} else { } else {
if ((!isset($_compile_id) || (strlen((string) $_file) > strlen($_compile_id_part) && substr_compare((string) $_file, $_compile_id_part, 0, strlen($_compile_id_part)) == 0)) && $unlink = false;
(!isset($resource_name) || (strlen((string) $_file) > strlen($_resource_part_1) && substr_compare((string) $_file, $_resource_part_1, - strlen($_resource_part_1), strlen($_resource_part_1)) == 0) || if ((!isset($_compile_id) || (isset($_filepath[$_compile_id_part_length]) && !strncmp($_filepath, $_compile_id_part, $_compile_id_part_length)))
(strlen((string) $_file) > strlen($_resource_part_2) && substr_compare((string) $_file, $_resource_part_2, - strlen($_resource_part_2), strlen($_resource_part_2)) == 0))) { && (!isset($resource_name)
|| (isset($_filepath[$_resource_part_1_length])
&& substr_compare($_filepath, $_resource_part_1, -$_resource_part_1_length, $_resource_part_1_length) == 0)
|| (isset($_filepath[$_resource_part_2_length])
&& substr_compare($_filepath, $_resource_part_2, -$_resource_part_2_length, $_resource_part_2_length) == 0))) {
if (isset($exp_time)) { if (isset($exp_time)) {
if (time() - @filemtime($_file) >= $exp_time) { if (time() - @filemtime($_filepath) >= $exp_time) {
$_count += @unlink((string) $_file) ? 1 : 0; $unlink = true;
} }
} else { } else {
$_count += @unlink((string) $_file) ? 1 : 0; $unlink = true;
} }
} }
if ($unlink && @unlink($_filepath)) {
$_count++;
}
} }
} }
// clear compiled cache // clear compiled cache