/** * @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()); }
/** * @return array [entity_config_id => class_name, ...] */ protected function loadConfigurableEntities() { $connection = $this->configManager->getEntityManager()->getConnection(); $entityRows = $connection->executeQuery('SELECT id, class_name, mode, data FROM oro_entity_config'); $classMap = []; $entities = []; foreach ($entityRows as $row) { $entityId = (int) $row['id']; $className = $row['class_name']; $isHidden = $row['mode'] === ConfigModel::MODE_HIDDEN; $data = array_merge($this->getEmptyData(), $connection->convertToPHPValue($row['data'], 'array')); $classMap[$entityId] = $className; $entities[$className] = ['i' => $entityId, 'h' => $isHidden]; $this->cache->saveEntityConfigValues($data, $className); } $this->cache->saveEntities($entities); return $classMap; }
/** * @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; }