StatusStartup($oConfig); } /** * Get approot.inc.php * Move to a function for allowing a better testing * * @param string $sAppRootFilename * * @throws \Exception */ private function StatusGetAppRoot($sAppRootFilename = 'approot.inc.php') { $sAppRootFile = __DIR__.'/../../../'.$sAppRootFilename; /* * Check that the approot file exists and has the appropriate access rights */ if (!file_exists($sAppRootFile) || !is_readable($sAppRootFile)) { throw new Exception($sAppRootFilename.' is not readable'); } @require_once($sAppRootFile); } /** * Check iTop's config File existence and readability * Move to a function for allowing a better testing * * @param string $sConfigFilename * * @throws \Exception */ private function StatusCheckConfigFile($sConfigFilename = 'config-itop.php') { $this->StatusGetAppRoot(); $sConfigFile = APPCONF.ITOP_DEFAULT_ENV.'/'.$sConfigFilename; /** * Check that the configuration file exists and has the appropriate access rights */ if (!file_exists($sConfigFile) || !is_readable($sConfigFile)) { throw new Exception($sConfigFilename.' is not readable'); } } /** * Start iTop's application for checking with its internal basic test every it's alright (DB connection, ...) * Move to a function for allowing a better testing * * @param \Config|null $oConfig * * @throws \CoreException * @throws \DictExceptionUnknownLanguage * @throws \MySQLException */ private function StatusStartup(Config $oConfig = null) { $this->StatusCheckConfigFile(); require_once(APPROOT.'/core/cmdbobject.class.inc.php'); require_once(APPROOT.'/application/utils.inc.php'); require_once(APPROOT.'/core/contexttag.class.inc.php'); $soConfigFile = (null === $oConfig) ? ITOP_DEFAULT_CONFIG_FILE : $oConfig; //Check if application could be started MetaModel::Startup($soConfigFile, true); } }