Beispiel #1
0
 /**
  * @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;
 }
Beispiel #2
0
 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());
 }
Beispiel #3
0
 /**
  * @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;
 }
Beispiel #4
0
 /**
  * @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;
 }