Changed Kohana::$cache_paths to Kohana::$caching and added path caching to Kohana::find_file()

This commit is contained in:
Woody Gilk 2009-06-12 21:10:04 -05:00
parent 2f08733bc0
commit ab38cfec05

View file

@ -75,9 +75,9 @@ final class Kohana {
public static $index_file = 'index.php'; public static $index_file = 'index.php';
/** /**
* @var boolean cache the location of files across requests? * @var boolean enabling internal caching?
*/ */
public static $cache_paths = FALSE; public static $caching = TRUE;
/** /**
* @var object logging object * @var object logging object
@ -175,10 +175,10 @@ final class Kohana {
// Determine if we are running in a Windows environment // Determine if we are running in a Windows environment
self::$is_windows = (DIRECTORY_SEPARATOR === '\\'); self::$is_windows = (DIRECTORY_SEPARATOR === '\\');
if (isset($settings['cache_paths'])) if (isset($settings['caching']))
{ {
// Enable or disable the caching of paths // Enable or disable internal caching
self::$cache_paths = (bool) $settings['cache_paths']; self::$caching = (bool) $settings['caching'];
} }
if (isset($settings['charset'])) if (isset($settings['charset']))
@ -421,6 +421,18 @@ final class Kohana {
// Create a partial path of the filename // Create a partial path of the filename
$path = $dir.'/'.$file.$ext; $path = $dir.'/'.$file.$ext;
if (self::$caching === TRUE)
{
// Set the cache key for this path
$cache_key = 'Kohana::find_file("'.$path.'")';
if (($found = self::cache($cache_key)) !== NULL)
{
// Return the cached path
return $found;
}
}
if ($dir === 'config' OR $dir === 'i18n') if ($dir === 'config' OR $dir === 'i18n')
{ {
// Include paths must be searched in reverse // Include paths must be searched in reverse
@ -456,6 +468,12 @@ final class Kohana {
} }
} }
if (isset($cache_key))
{
// Save the path cache
Kohana::cache($cache_key, $found);
}
if (isset($benchmark)) if (isset($benchmark))
{ {
// Stop the benchmark // Stop the benchmark