Exemple #1
0
 public final function __construct(FoldedEntity $foldedEntity)
 {
     $this->ident = $foldedEntity->getIdent();
     $this->folding = $foldedEntity->getFolding();
     $this->foldedEntity = $foldedEntity;
     check_condition($this->ident === self::getIdent(), "Несовпадение идентификаторов в экземпляре класса для сущности {$foldedEntity}");
     //Позволим предкам проинициализироваться
     $this->_construct();
 }
Exemple #2
0
 public function setDependsOnEntity($ident, FoldedEntity $entity)
 {
     if (!$this->isCanDependsOnEntitys($ident)) {
         //Мы не используем кеш или сущность не видна, поэтому - не зависим от других сущностей фолдингов
         return;
         //---
     }
     if (!$entity->getFolding()->isVisibleEntity($entity->getIdent())) {
         //Мы обнаружили, что в видимой сущности используется невидимая
         raise_error('Visible entity [' . $this->getUnique() . '] cannot depends on invisible entity [' . $entity->getUnique() . ']');
     }
     if ($this->getUnique($ident) == $entity->getUnique()) {
         //Сущность не может зависеть от самой себя
         return;
         //---
     }
     $depends = $this->getFromFoldedCache($ident, self::CACHE_DEPEND_ENTS);
     $depends = to_array($depends);
     if (in_array($entity->getUnique(), $depends)) {
         //Мы уже отметили, что зависим от данной сущности
         return;
         //---
     }
     $this->LOGGER->info("Entity [{$ident}] is depends on entity [{$entity}].");
     $depends[] = $entity->getUnique();
     $this->saveToFoldedCache($depends, $ident, self::CACHE_DEPEND_ENTS);
     unset($this->WE_DEPENDS_ON_CACHE[$ident]);
 }