/** * Load all specific cms data. */ public function loadCms() { $this->fileConfig->loadConfigFromFile(CONFIG_PATH . '/config.php'); if ($this->fileConfig->get('dbUser') !== null) { /* * Cms is installed */ if ($this->fileConfig->get('debugModus') === false) { @ini_set('display_errors', 'off'); error_reporting(0); } $dbFactory = new Database\Factory(); $db = $dbFactory->getInstanceByConfig($this->fileConfig); $databaseConfig = new Config\Database($db); $databaseConfig->loadConfigFromDatabase(); Registry::set('db', $db); Registry::set('config', $databaseConfig); $this->plugin->addPluginData('db', $db); $this->plugin->addPluginData('config', $databaseConfig); $this->plugin->addPluginData('translator', $this->translator); $this->plugin->execute('AfterDatabaseLoad'); $this->router->defineStartPage($databaseConfig->get('start_page'), $this->translator); } else { /* * Cms not installed yet. */ $this->request->setModuleName('install'); if (!empty($_SESSION['language'])) { $this->translator->setLocale($_SESSION['language']); } } }
/** * Filling the config object with individual testcase data and injecting it into the registry. */ public static function setConfigInRegistry($configData) { if (static::$config === null) { if (!Registry::has('config') && file_exists(CONFIG_PATH . '/config.php')) { static::$config = new Config(); static::$config->loadConfigFromFile(CONFIG_PATH . '/config.php'); foreach ($configData as $configKey => $configValue) { static::$config->set($configKey, $configValue); } } } Registry::remove('config'); Registry::set('config', self::$config); }
/** * Tests if a loaded config file is the same as the defined array. */ public function testLoadConfigFromFile() { $configArray = array('dbHost' => 'localhost', 'dbUser' => 'root', 'dbPassword' => ''); $this->config->loadConfigFromFile(__DIR__ . '/_files/config.php'); $this->assertEquals($configArray, array('dbHost' => $this->config->get('dbHost'), 'dbUser' => $this->config->get('dbUser'), 'dbPassword' => $this->config->get('dbPassword')), 'Config array from file differs with defined array.'); }