protected static function init() { if (self::$cacheVersion) { return; } parent::init(); // check for the reload file $cacheDir = self::$envMap['cache_root_path']; $reloadFileExists = file_exists("{$cacheDir}/base.reload"); // fetch the cache version from APC $fileHash = md5(realpath(__FILE__)); $cacheVersionKey = self::APC_CACHE_MAP . $fileHash; if (!$reloadFileExists && function_exists('apc_fetch')) { self::$cacheVersion = apc_fetch($cacheVersionKey); if (self::$cacheVersion) { self::$cacheKey = 'kConf-' . self::$cacheVersion; return; } } // no cache version in APC - create a new one self::$cacheVersion = substr(time(), -6) . substr($fileHash, 0, 4); self::$cacheKey = 'kConf-' . self::$cacheVersion; // save the cache version if (function_exists('apc_store') && PHP_SAPI != 'cli') { $res = apc_store($cacheVersionKey, self::$cacheVersion); if ($reloadFileExists && $res) { $deleted = @unlink("{$cacheDir}/base.reload"); error_log("Base configuration reloaded"); if (!$deleted) { error_log("Failed to delete base.reload file"); } } } }