コード例 #1
0
 public function clean()
 {
     if (!$this->building) {
         throw new Kwf_Exception("Can't clear out of build");
     }
     Kwf_Cache_SimpleStatic::clear('asb-');
     self::_getFileCacheInstance()->clean();
 }
コード例 #2
0
 public function tearDown()
 {
     Kwf_Trl::getInstance()->setWebCodeLanguage(null);
     Kwf_Trl::getInstance()->unsetTrlElements();
     Kwf_Cache_SimpleStatic::clear('trl-');
     Kwf_Cache_SimpleStatic::clear('trlp-');
     parent::tearDown();
 }
コード例 #3
0
 public function clean()
 {
     if (!$this->building) {
         throw new Kwf_Exception("Can't clear out of build");
     }
     Kwf_Cache_SimpleStatic::clear('asb-');
     foreach (glob(self::$_buildDir . '/*') as $f) {
         unlink($f);
     }
 }
コード例 #4
0
 public static function reload()
 {
     $configClass = Kwf_Setup::$configClass;
     $config = new $configClass(Kwf_Setup::getConfigSection());
     $cacheId = 'config_' . str_replace(array('-', '.'), '_', Kwf_Setup::getConfigSection());
     Kwf_Config_Cache::getInstance()->save($config, $cacheId);
     if (extension_loaded('apc')) {
         $apcCacheId = $cacheId . getcwd();
         apc_delete($apcCacheId);
         apc_delete($apcCacheId . 'mtime');
         if (PHP_SAPI == 'cli') {
             Kwf_Util_Apc::callClearCacheByCli(array(array('cacheIds' => $apcCacheId . ',' . $apcCacheId . 'mtime')));
         }
         Kwf_Cache_SimpleStatic::clear('config-');
     }
     Kwf_Config_Web::clearInstances();
     Kwf_Registry::set('config', $config);
 }
コード例 #5
0
 public function clean()
 {
     Kwf_Cache_SimpleStatic::clear('as-');
     return self::_getSlowCache()->clean();
 }
コード例 #6
0
ファイル: Apc.php プロジェクト: xiaoguizhidao/koala-framework
 public static function dispatchUtils()
 {
     if ($_POST['password'] != self::_getHttpPassword()) {
         throw new Kwf_Exception_AccessDenied();
     }
     $uri = $_SERVER['REQUEST_URI'];
     $baseUrl = Kwf_Setup::getBaseUrl();
     if ($baseUrl && substr($uri, 0, strlen($baseUrl)) == $baseUrl) {
         $uri = substr($uri, strlen($baseUrl));
     }
     if (substr($uri, 0, 25) == '/kwf/util/apc/clear-cache') {
         $s = microtime(true);
         if (isset($_REQUEST['deleteCacheSimple'])) {
             foreach (explode(',', $_REQUEST['deleteCacheSimple']) as $id) {
                 Kwf_Cache_Simple::delete($id);
             }
         }
         if (isset($_REQUEST['clearCacheSimpleStatic'])) {
             foreach (explode(',', $_REQUEST['clearCacheSimpleStatic']) as $id) {
                 Kwf_Cache_SimpleStatic::clear($id);
             }
         }
         if (isset($_REQUEST['deleteCacheSimpleStatic'])) {
             foreach (explode(',', $_REQUEST['deleteCacheSimpleStatic']) as $id) {
                 Kwf_Cache_SimpleStatic::delete($id);
             }
         }
         if (isset($_REQUEST['cacheIds'])) {
             foreach (explode(',', $_REQUEST['cacheIds']) as $cacheId) {
                 apc_delete($cacheId);
             }
         }
         if (isset($_REQUEST['files']) && function_exists('apc_delete_file')) {
             foreach (explode(',', $_REQUEST['files']) as $file) {
                 @apc_delete_file($file);
             }
         } else {
             if (isset($_REQUEST['type']) && $_REQUEST['type'] == 'user') {
                 if (extension_loaded('apcu')) {
                     apc_clear_cache();
                 } else {
                     apc_clear_cache('user');
                 }
             } else {
                 if (!extension_loaded('apcu')) {
                     apc_clear_cache('file');
                 }
             }
         }
         echo 'OK ' . round((microtime(true) - $s) * 1000) . ' ms';
         exit;
     } else {
         if (substr($uri, 0, 24) == '/kwf/util/apc/save-cache') {
             $data = unserialize($_REQUEST['data']);
             if (apc_store($_REQUEST['id'], $data)) {
                 echo 'OK';
             } else {
                 echo 'ERROR';
             }
             exit;
         } else {
             if (substr($uri, 0, 31) == '/kwf/util/apc/get-counter-value') {
                 $prefix = Kwf_Cache::getUniquePrefix() . 'bench-';
                 echo apc_fetch($prefix . $_GET['name']);
                 exit;
             } else {
                 if ($uri == '/kwf/util/apc/stats') {
                     self::stats();
                 } else {
                     if ($uri == '/kwf/util/apc/iterate') {
                         self::iterate();
                     } else {
                         if ($uri == '/kwf/util/apc/is-loaded') {
                             if (extension_loaded('apc')) {
                                 echo 'OK1';
                             } else {
                                 echo 'OK0';
                             }
                             exit;
                         } else {
                             if ($uri == '/kwf/util/apc/get-hostname') {
                                 echo php_uname('n');
                                 exit;
                             }
                         }
                     }
                 }
             }
         }
     }
     throw new Kwf_Exception_NotFound();
 }
コード例 #7
0
ファイル: Watcher.php プロジェクト: nsams/koala-framework
 private static function _clearComponentSettingsCache($componentClasses, $setting = null)
 {
     Kwf_Component_Abstract::resetSettingsCache();
     $settings = Kwf_Component_Settings::_getSettingsCached();
     $dependenciesChanged = false;
     $generatorssChanged = false;
     $dimensionsChanged = false;
     $menuConfigChanged = false;
     foreach ($componentClasses as $c) {
         Kwf_Component_Settings::$_rebuildingSettings = true;
         if ($setting) {
             //a single setting changed
             $newSettings = $settings[$c];
             $newSettings[$setting] = Kwc_Abstract::getSetting($c, $setting);
         } else {
             //all settings might have changed
             $newSettings = Kwf_Component_Settings::_getSettingsIncludingPreComputed($c);
         }
         Kwf_Component_Settings::$_rebuildingSettings = false;
         if ($newSettings['assets'] != $settings[$c]['assets'] || $newSettings['assetsAdmin'] != $settings[$c]['assetsAdmin']) {
             $dependenciesChanged = true;
         }
         if ($newSettings['generators'] != $settings[$c]['generators']) {
             $generatorssChanged = true;
             $oldChildComponentClasses = self::_getComponentClassesFromGeneratorsSetting($settings[$c]['generators']);
             $newChildComponentClasses = self::_getComponentClassesFromGeneratorsSetting($newSettings['generators']);
         }
         if (isset($newSettings['dimensions']) && $newSettings['dimensions'] != $settings[$c]['dimensions']) {
             $dimensionsChanged = true;
         }
         if (isset($newSettings['menuConfig']) && $newSettings['menuConfig'] != $settings[$c]['menuConfig']) {
             $menuConfigChanged = true;
         }
         $settings[$c] = $newSettings;
     }
     echo "refreshed component settings cache...\n";
     if ($dependenciesChanged) {
         echo "assets changed...\n";
         self::_clearAssetsDependencies();
         self::_clearAssetsAll();
     }
     $clearCacheSimpleStatic = array('has-', 'cs-', 'flag-', 'componentClasses-', 'recCCGen-', 'genInst-', 'childComponentClasses-');
     if ($generatorssChanged) {
         echo "generators changed...\n";
         echo count(Kwc_Abstract::getComponentClasses()) . " component classes (previously)\n";
         $m = Kwf_Component_Cache::getInstance()->getModel('url');
         foreach ($m->getRows() as $r) {
             Kwf_Cache_Simple::delete('url-' . $r->url);
             $r->delete();
         }
         foreach ($newChildComponentClasses as $cmpClass) {
             if (!in_array($cmpClass, Kwc_Abstract::getComponentClasses())) {
                 self::_loadSettingsRecursive($settings, $cmpClass);
             }
         }
         $removedComponentClasses = array_diff($oldChildComponentClasses, $newChildComponentClasses);
         foreach ($removedComponentClasses as $removedCls) {
             self::_removeSettingsRecursive($settings, $removedCls);
         }
     }
     file_put_contents('build/component/settings', serialize($settings));
     echo "cleared component settings apc cache...\n";
     if (Kwf_Util_Apc::isAvailable()) {
         self::_clearApcCache(array('clearCacheSimpleStatic' => $clearCacheSimpleStatic));
     } else {
         foreach ($clearCacheSimpleStatic as $i) {
             Kwf_Cache_SimpleStatic::clear($i);
         }
     }
     echo "\n";
     if ($dimensionsChanged) {
         echo "dimensions changed...\n";
         $clearCacheSimple = array();
         foreach ($componentClasses as $c) {
             $idPrefix = str_replace(array('.', '>'), array('___', '____'), $c) . '_';
             $clearCacheSimple[] = 'media-output-' . $idPrefix;
             $clearCacheSimple[] = 'media-output-mtime-' . $idPrefix;
             foreach (glob('cache/media/' . $idPrefix . '*') as $f) {
                 echo $f . " [DELETED]\n";
                 unlink($f);
             }
         }
         Kwf_Cache_Simple::delete($clearCacheSimple);
         echo "cleared media cache...\n";
     }
     if ($menuConfigChanged) {
         echo "menu config changed...\n";
         Kwf_Acl::clearCache();
         echo "cleared acl cache...\n";
     }
     $dependentComponentClasses = array();
     foreach (Kwc_Abstract::getComponentClasses() as $c) {
         if (strpos($c, '.') !== false) {
             $params = substr($c, strpos($c, '.') + 1);
             foreach ($componentClasses as $i) {
                 if (strpos($params, $i) !== false) {
                     $dependentComponentClasses[] = $c;
                 }
             }
         }
     }
     if ($dependentComponentClasses) {
         echo "dependent componentClasses: " . count($dependentComponentClasses) . " (Cc, Trl)\n";
         echo implode(', ', $dependentComponentClasses) . "\n";
         self::_clearComponentSettingsCache($dependentComponentClasses, $setting);
     }
 }
コード例 #8
0
 public function clean()
 {
     Kwf_Cache_SimpleStatic::clear('as-');
     return self::_getFileCacheInstance()->clean();
 }