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(); }
public function setContextWithFoldedEntity(FoldedEntity $entity) { $this->setContext($entity->getIdent()); }
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]); }