Esempio n. 1
0
 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;
         }
     }
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
 public function clean()
 {
     PSCache::inst()->cleanCache($this->group);
 }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
$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));
Esempio n. 6
0
 /**
  * Очистка кеша
  */
 private function cleanFoldedCache($ident)
 {
     if ($this->isCanUseCache($ident)) {
         PSCache::inst()->cleanCache($this->cacheGroup($ident));
     }
 }