Exemplo n.º 1
0
 protected function getEntityChoiceList($entityClassName, $relationType)
 {
     $configManager = $this->configProvider->getConfigManager();
     $choices = array();
     if ($this->targetEntity) {
         $entityIds = array($this->configProvider->getId($this->targetEntity));
     } else {
         $entityIds = $configManager->getIds('extend');
     }
     if (in_array($relationType, array('oneToMany', 'manyToMany'))) {
         $entityIds = array_filter($entityIds, function (EntityConfigId $configId) use($configManager) {
             $config = $configManager->getConfig($configId);
             return $config->is('is_extend');
         });
     }
     $entityIds = array_filter($entityIds, function (EntityConfigId $configId) use($configManager) {
         $config = $configManager->getConfig($configId);
         return $config->is('is_extend', false) || !$config->is('state', ExtendScope::STATE_NEW);
     });
     foreach ($entityIds as $entityId) {
         $className = $entityId->getClassName();
         if ($className != $entityClassName) {
             list($moduleName, $entityName) = ConfigHelper::getModuleAndEntityNames($className);
             $choices[$className] = $moduleName . ':' . $entityName;
         }
     }
     return $choices;
 }
 /**
  * @param string $entityName
  * @param bool   $isExtend
  * @param string $owner
  * @param string $mode
  */
 public function createEntity($entityName, $isExtend = true, $owner = self::OWNER_CUSTOM, $mode = ConfigModelManager::MODE_DEFAULT)
 {
     $configManager = $this->configProvider->getConfigManager();
     $configManager->createConfigEntityModel($entityName, $mode);
     $extendConfig = $this->configProvider->getConfig($entityName);
     $extendConfig->set('owner', $owner);
     $extendConfig->set('state', self::STATE_NEW);
     $extendConfig->set('is_extend', $isExtend);
     $configManager->persist($extendConfig);
     $entityFieldConfig = $configManager->getProvider('entity')->getConfig($entityName, 'id');
     $entityFieldConfig->set('label', 'Id');
 }
Exemplo n.º 3
0
 public function testConfig()
 {
     $this->assertEquals($this->configManager, $this->configProvider->getConfigManager());
     $this->assertEquals(true, $this->configProvider->hasConfig(DemoEntity::ENTITY_NAME));
     $this->assertEquals($this->entityConfig, $this->configProvider->getConfig(DemoEntity::ENTITY_NAME));
     $this->assertEquals('testScope', $this->configProvider->getScope());
     $entityConfigId = new EntityConfigId('testScope', DemoEntity::ENTITY_NAME);
     $fieldConfigId = new FieldConfigId('testScope', DemoEntity::ENTITY_NAME, 'testField', 'string');
     $this->assertEquals($entityConfigId, $this->configProvider->getId(DemoEntity::ENTITY_NAME));
     $this->assertEquals($fieldConfigId, $this->configProvider->getId(DemoEntity::ENTITY_NAME, 'testField', 'string'));
     $entityConfigIdWithOtherScope = new EntityConfigId('otherScope', DemoEntity::ENTITY_NAME);
     $this->assertEquals($this->entityConfig, $this->configProvider->getConfigById($entityConfigIdWithOtherScope));
 }
Exemplo n.º 4
0
 /**
  * @return array
  */
 protected function getPropertyChoiceList()
 {
     $choices = array();
     if (!$this->entityClass) {
         return $choices;
     }
     $fields = $this->configProvider->filter(function (Config $config) {
         return in_array($config->getId()->getFieldType(), ['integer', 'string', 'smallint', 'decimal', 'bigint', 'text', 'money']) && $config->is('is_deleted', false);
     }, $this->entityClass);
     $entityConfigProvider = $this->configProvider->getConfigManager()->getProvider('entity');
     foreach ($fields as $field) {
         $label = $entityConfigProvider->getConfigById($field->getId())->get('label');
         $choices[$field->getId()->getFieldName()] = $label ?: $field->getId()->getFieldName();
     }
     return $choices;
 }
Exemplo n.º 5
0
 /**
  * {@inheritdoc}
  */
 public function getMetadata()
 {
     $metadata = parent::getMetadata();
     $entityIds = [];
     $em = $this->entityConfigProvider->getConfigManager()->getEntityManager();
     $configIds = $this->entityConfigProvider->getIds();
     foreach ($configIds as $configId) {
         $className = $configId->getClassName();
         if ($this->extendConfigProvider->getConfig($className)->in('state', [ExtendScope::STATE_ACTIVE, ExtendScope::STATE_UPDATE])) {
             $classMetadata = $em->getClassMetadata($className);
             $identifiers = $classMetadata->getIdentifier();
             $entityIds[$className] = array_shift($identifiers);
         }
     }
     $metadata['entity_ids'] = $entityIds;
     return $metadata;
 }
Exemplo n.º 6
0
 /**
  * {@inheritdoc}
  */
 public function getRepository($className)
 {
     $repo = parent::getRepository($className);
     if ($repo instanceof EntityConfigAwareRepositoryInterface) {
         $repo->setEntityConfigManager($this->extendConfigProvider->getConfigManager());
     }
     return $repo;
 }
Exemplo n.º 7
0
 protected function getEntityChoiceList($entityClassName, $relationType)
 {
     $configManager = $this->configProvider->getConfigManager();
     $choices = array();
     if ($this->targetEntity) {
         $entityIds = array($this->configProvider->getId($this->targetEntity));
     } else {
         $entityIds = $configManager->getIds('extend');
     }
     if (in_array($relationType, array('oneToMany', 'manyToMany'))) {
         $entityIds = array_filter($entityIds, function (EntityConfigId $configId) use($configManager) {
             $config = $configManager->getConfig($configId);
             return $config->is('is_extend');
         });
     }
     $entityIds = array_filter($entityIds, function (EntityConfigId $configId) use($configManager) {
         $config = $configManager->getConfig($configId);
         return $config->is('is_extend', false) || !$config->is('state', ExtendManager::STATE_NEW);
     });
     foreach ($entityIds as $entityId) {
         $entityName = $moduleName = '';
         if ($entityId->getClassName() != $entityClassName) {
             $className = explode('\\', $entityId->getClassName());
             if (count($className) > 1) {
                 foreach ($className as $i => $name) {
                     if (count($className) - 1 == $i) {
                         $entityName = $name;
                     } elseif (!in_array($name, array('Bundle', 'Entity'))) {
                         $moduleName .= $name;
                     }
                 }
             }
             $choices[$entityId->getClassName()] = $moduleName . ':' . $entityName;
         }
     }
     return $choices;
 }
Exemplo n.º 8
0
 /**
  * Removes the entity proxies and metadata from the cache
  *
  * @param bool $keepEntityProxies Set TRUE if proxies for custom and extend entities should not be deleted
  */
 public function clear($keepEntityProxies = false)
 {
     $filesystem = new Filesystem();
     if ($keepEntityProxies) {
         $aliasesPath = ExtendClassLoadingUtils::getAliasesPath($this->cacheDir);
         if ($filesystem->exists($aliasesPath)) {
             $filesystem->remove($aliasesPath);
         }
     } else {
         $baseCacheDir = ExtendClassLoadingUtils::getEntityBaseCacheDir($this->cacheDir);
         if ($filesystem->exists($baseCacheDir)) {
             $filesystem->remove([$baseCacheDir]);
         }
         $filesystem->mkdir(ExtendClassLoadingUtils::getEntityCacheDir($this->cacheDir));
     }
     $metadataCacheDriver = $this->configProvider->getConfigManager()->getEntityManager()->getMetadataFactory()->getCacheDriver();
     if ($metadataCacheDriver instanceof ClearableCache) {
         $metadataCacheDriver->deleteAll();
     }
 }