protected function __construct() { //Извлекаем все изменённые сущности БД $CHANGED = DbBean::inst()->getChangedEntitys(); if (empty($CHANGED)) { return; //--- } $LOGGER = PsLogger::inst(__CLASS__); $LOGGER->info('Изменённые сущности БД: ' . print_r($CHANGED, true)); foreach ($CHANGED as $chEntity) { $type = $chEntity['v_type']; $entity = $chEntity['v_entity']; $TypeEntity = "{$type} {$entity}"; switch ($type) { /* * 1. Проверим изменённые сущности фолдинга */ case DbBean::CHANGE_FOLD_ENT: $fentity = Handlers::getInstance()->getFoldedEntityByUnique($entity, false); if ($fentity) { $LOGGER->info('[{}] -> Сущность фолдинга [{}]', $TypeEntity, $fentity->getUnique()); FoldedResourcesManager::onEntityAction(FoldedResourcesManager::ACTION_ENTITY_CHANGED_DB, $fentity->getFolding(), $fentity->getIdent()); $fentity->onEntityChanged(); } break; /* * 2. Проверим изменённые таблицы/представления */ /* * 2. Проверим изменённые таблицы/представления */ case DbBean::CHANGE_TABLE: case DbBean::CHANGE_VIEW: /* @var $folding FoldedResources */ foreach (FoldedResourcesManager::inst()->getTableOrViewFoldings($entity) as $folding) { $LOGGER->info('[{}] -> Фолдинг [{}]', $TypeEntity, $folding->getUnique()); $folding->onFoldingChanged(); } foreach (PSCache::inst()->onDbEntityChanged($entity) as $cacheGr) { $LOGGER->info('[{}] -> Группа кеширования [{}]', $TypeEntity, $cacheGr); } break; } } }
protected function executeImpl(ArrayAdapter $params) { $id = $params->str('id'); $type = $params->str('type'); $action = $params->str('action'); switch ($action) { case 'ccache': PSCache::inst()->clean(); break; case 'toggledev': PsGlobals::inst()->getProp('PS_PRODUCTION')->setValue(!PS_PRODUCTION); PsGlobals::inst()->save2file(); break; default: return 'Unknown action'; } return new AjaxSuccess(); }
public function clean() { PSCache::inst()->cleanCache($this->group); }
public final function onFoldingChanged() { if ($this->foldingChangeNotified) { return; //--- } $this->foldingChangeNotified = true; $this->LOGGER->info('Вызван метод onFoldingChanged.'); FoldedResourcesManager::onEntityAction(FoldedResourcesManager::ACTION_FOLDING_ONCE_CHENGED, $this); PSCache::inst()->onFoldingChanged($this); }
$a = array('a' => array('x' => 1, 'y' => 2)); $key = 'M'; $group = 'default'; $group2 = 'default2'; PSCache::inst()->saveToCache($a, $key, $group, 'xxx'); PSCache::inst()->saveToCache(array('a' => 1), '$key', '$group', 'xxx1'); die; echo TestUtils::testProductivity(function () { PSCache::inst()->getFromCache('$key', '$group', null, 'xxx1'); }); print_r(PSCache::inst()->getFromCache($key, $group, array('a'), 'xxx1')); die; print_r(PSCache::inst()->saveToCache($a, $key, $group)); print_r(PSCache::inst()->getFromCache($key, $group)); PSCache::inst()->removeFromCache($key, $group); print_r(PSCache::inst()->getFromCache($key, $group)); die; /* echo PsConnectionPool::params(); */ //print_r(PSDB::getRec('select * from blog_post where id_post=1')); //print_r(InflectsManager::inst()->getInflections('корыто')); //print_r(PsMathRebusSolver::solve('a+df=1aa')); //print_r(PsTable::inst('users')->getColumns()); //echo TexImager::inst()->getImgDi('\alpha'); //echo TexImager::inst()->getImgDi('\sqrt{4}=2'); //$sprite = CssSprite::inst(DirItem::inst('ps-content/sprites/ico')); //echo $sprite->getSpriteSpan('calendar'); //print_r(ConfigIni::cronProcesses()); //$tpl = PSSmarty::template(DirItem::inst(__DIR__, 'mytpl', PsConst::EXT_TPL));
/** * Очистка кеша */ private function cleanFoldedCache($ident) { if ($this->isCanUseCache($ident)) { PSCache::inst()->cleanCache($this->cacheGroup($ident)); } }