/** * @param callable $callback * @param string $scope * @param bool $withHidden * * @return array */ protected function mapEntities($callback, $scope, $withHidden) { $result = []; $entities = $this->cache->getEntities(); if (null !== $entities) { foreach ($entities as $class => $isHidden) { if ($withHidden || !$isHidden) { $result[] = $callback($scope, $class); } } } elseif ($this->modelManager->checkDatabase()) { $models = $this->modelManager->getModels(); $entities = []; /** @var EntityConfigModel $model */ foreach ($models as $model) { $isHidden = $model->isHidden(); $class = $model->getClassName(); $entities[$class] = $isHidden; if ($withHidden || !$isHidden) { $result[] = $callback($scope, $class); } } $this->cache->saveEntities($entities); } return $result; }
public function testDeleteEntitiesLocalOnly() { $entities = ['Test\\Entity1' => true, 'Test\\Entity2' => true]; $this->cache->expects($this->never())->method('delete'); $this->configCache->saveEntities($entities); $this->assertTrue($this->configCache->deleteEntities(true)); $this->assertNull($this->configCache->getEntities()); }
/** * @param string $className * * @return array|null ['i' => entity_model_id, 'h' => is_hidden_model] */ protected function findEntity($className) { $result = null; $entities = $this->cache->getEntities(); if (null === $entities && $this->modelManager->checkDatabase()) { $models = $this->modelManager->getModels(); $entities = []; /** @var EntityConfigModel $model */ foreach ($models as $model) { $isHidden = $model->isHidden(); $class = $model->getClassName(); $entities[$class] = ['i' => $model->getId(), 'h' => $isHidden]; } $this->cache->saveEntities($entities); } if (null !== $entities && isset($entities[$className])) { $result = $entities[$className]; } return $result; }
protected function loadVirtualFields() { $entities = $this->cache->getEntities(); foreach ($entities as $className => $entityData) { $virtualFields = $this->virtualFieldProvider->getVirtualFields($className); if (!empty($virtualFields)) { foreach ($virtualFields as $fieldName) { if (null === $this->cache->getConfigurable($className, $fieldName)) { $this->cache->saveConfigurable(false, $className, $fieldName); } } } $virtualRelations = $this->virtualRelationProvider->getVirtualRelations($className); if (!empty($virtualRelations)) { foreach ($virtualRelations as $fieldName => $config) { if (null === $this->cache->getConfigurable($className, $fieldName)) { $this->cache->saveConfigurable(false, $className, $fieldName); } } } } }