コード例 #1
0
ファイル: DbChangeListener.php プロジェクト: ilivanoff/www
 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;
         }
     }
 }
コード例 #2
0
ファイル: MapSrcDbEntitys.php プロジェクト: ilivanoff/www
 protected function preload($mident, array $params)
 {
     $this->ENTITYS = DbBean::inst()->getAllTablesAndViews();
 }