public static function autoconfig($name = "") { // self::startDebug($name,"Check Name",__LINE__,__FUNCTION__); $cache = self::cacheMethod($name); if ($cache != "" && $cache != self::$storage && $cache != "auto") { return $cache; } // self::startDebug($cache,"Check Cache",__LINE__,__FUNCTION__); $os = self::getOS(); // self::startDebug(self::$storage,"User Set",__LINE__,__FUNCTION__); if (self::$storage == "" || self::$storage == "auto") { // self::startDebug(self::$storage,"User Set Auto",__LINE__,__FUNCTION__); if (extension_loaded('apc') && ini_get('apc.enabled') && strpos(PHP_SAPI, "CGI") === false) { self::$sys['drivers']['apc'] = true; self::$sys['storage'] = "memory"; self::$sys['method'] = "apc"; // self::startDebug(self::$sys,"GOT APC",__LINE__,__FUNCTION__); } elseif (extension_loaded('xcache')) { self::$sys['drivers']['xcache'] = true; self::$sys['storage'] = "memory"; self::$sys['method'] = "xcache"; // self::startDebug(self::$sys,"GOT XCACHE",__LINE__,__FUNCTION__); } else { // fix PATH for existing $reconfig = false; // self::startDebug(self::getPath()."/config.".$os['unique'].".cache.ini","CHECK CONFIG FILE",__LINE__,__FUNCTION__); if (file_exists(self::getPath() . "/config." . $os['unique'] . ".cache.ini")) { $info = self::decode(file_get_contents(self::getPath() . "/config." . $os['unique'] . ".cache.ini")); // self::startDebug($info,"CHECK INFO",__LINE__,__FUNCTION__); if (!isset($info['value'])) { $reconfig = true; } else { $info = $info['value']; self::$sys = $info; } } else { $info = self::systemInfo(); // self::startDebug($info,"CHECK INFO BY SYSTEM INFO",__LINE__,__FUNCTION__); } if (isset($info['os']['unique'])) { if ($info['os']['unique'] != $os['unique']) { $reconfig = true; } } else { $reconfig = true; } if (!file_exists(self::getPath() . "/config." . $os['unique'] . ".cache.ini") || $reconfig == true) { $info = self::systemInfo(); self::$sys = $info; // self::startDebug($info,"Check Info",__LINE__,__FUNCTION__); try { $f = fopen(self::getPath() . "/config." . $os['unique'] . ".cache.ini", "w+"); fwrite($f, self::encode($info)); fclose($f); } catch (Exception $e) { die("Please chmod 0777 " . self::getPath() . "/config." . $os['unique'] . ".cache.ini"); } } else { } } self::$storage = self::$sys['method']; } else { if (in_array(self::$storage, array("files", "pdo", "mpdo"))) { self::$sys['storage'] = "disk"; } elseif (in_array(self::$storage, array("apc", "memcache", "memcached", "wincache", "xcache"))) { self::$sys['storage'] = "memory"; } else { self::$sys['storage'] = ""; } if (self::$sys['storage'] == "" || !in_array(self::$storage, self::$supported_api)) { die("Don't have this Cache " . self::$storage . " In your System! Please double check!"); } self::$sys['method'] = strtolower(self::$storage); } if (self::$sys['method'] == "files") { $last_cleanup = self::files_get("last_cleanup_cache"); if ($last_cleanup == null) { self::files_cleanup(); self::files_set("last_cleanup_cache", @date("U"), 3600 * self::$files_cleanup_after); } } // self::startDebug(self::$sys,"Check RETURN SYS",__LINE__,__FUNCTION__); return self::$sys['method']; }