- optimization of resource class loading

This commit is contained in:
Uwe Tews
2015-05-08 06:02:59 +02:00
parent c5468b421e
commit d7b0b57420
2 changed files with 14 additions and 8 deletions

View File

@@ -21,7 +21,7 @@ abstract class Smarty_CacheResource
* @var array
*/
protected static $sysplugins = array(
'file' => true,
'file' => 'smarty_internal_cacheresource_file.php',
);
/**
@@ -116,7 +116,7 @@ abstract class Smarty_CacheResource
// theoretically locking_timeout should be checked against time_limit (max_execution_time)
$start = microtime(true);
$hadLock = null;
while ($this->hasLock($smarty, $cached)) {
while ($r = $this->hasLock($smarty, $cached)) {
$hadLock = true;
if (microtime(true) - $start > $smarty->locking_timeout) {
// abort waiting for lock release
@@ -198,6 +198,9 @@ abstract class Smarty_CacheResource
// try sysplugins dir
if (isset(self::$sysplugins[$type])) {
$cache_resource_class = 'Smarty_Internal_CacheResource_' . ucfirst($type);
if (!class_exists($cache_resource_class, false)) {
require SMARTY_SYSPLUGINS_DIR . self::$sysplugins[$type];
}
return $smarty->_cacheresource_handlers[$type] = new $cache_resource_class();
}
// try plugins dir

View File

@@ -53,12 +53,12 @@ abstract class Smarty_Resource
* @var array
*/
protected static $sysplugins = array(
'file' => true,
'string' => true,
'extends' => true,
'stream' => true,
'eval' => true,
'php' => true
'file' => 'smarty_internal_resource_file.php',
'string' => 'smarty_internal_resource_string.php',
'extends' => 'smarty_internal_resource_extends.php',
'stream' => 'smarty_internal_resource_stream.php',
'eval' => 'smarty_internal_resource_eval.php',
'php' => 'smarty_internal_resource_php.php'
);
/**
@@ -171,6 +171,9 @@ abstract class Smarty_Resource
// try sysplugins dir
if (isset(self::$sysplugins[$type])) {
$_resource_class = 'Smarty_Internal_Resource_' . ucfirst($type);
if (!class_exists($_resource_class, false)) {
require SMARTY_SYSPLUGINS_DIR . self::$sysplugins[$type];
}
return $smarty->_resource_handlers[$type] = new $_resource_class();
}