Ejemplo n.º 1
0
 /**
  * @param string $entityConfigFile
  * @param self $referencedConfig
  * @throws Err
  */
 public function __construct($entityConfigFile, self $referencedConfig = null)
 {
     $this->parentRefConfig = $referencedConfig;
     $this->MessagePool = new MessagePool();
     if (!is_file(OBX_DOC_ROOT . $entityConfigFile)) {
         throw new Err('', Err::E_OPEN_CFG_FAILED);
     }
     $this->configPath = self::normalizePath($entityConfigFile);
     $jsonConfig = file_get_contents(OBX_DOC_ROOT . $this->configPath);
     $configData = json_decode($jsonConfig, true);
     if (null === $configData) {
         throw new Err(array('JSON_ERROR' => Tools::getJsonErrorMsg()), Err::E_PARSE_CFG_FAILED);
     }
     $this->initialEntityData($configData);
     $this->initVersion($configData);
     $this->initEntityClass($configData);
     $this->initTableName($configData);
     $this->initLangData($configData);
     $this->initFields($configData);
     $this->initReferences($configData);
     $this->initCheckReferencedExFields();
     $this->initIndex($configData);
     $this->initUnique($configData);
     $this->initDefaultSort($configData);
     $this->initDefaultGroupBy($configData);
     // Ставим метку завершения чтения, на тот случай если кто-то напишет такой код,
     // в котором объект будет доступен для работы уже после выброса исключения
     $this->readSuccess = true;
 }