Example #1
0
 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");
             }
         }
     }
 }