Files
iTop/sources/application/status/status.inc.php
bruno DA SILVA 08c1f4f072 autoload rework
- bootstrap.inc.php is now included by approot.inc.php
 - remove all unescessaries includes of bootstrap.inc.php
 - in bootstrap.inc.php autoload can be bypassed using a feature flag because "why not"
2019-11-08 16:51:57 +01:00

80 lines
2.1 KiB
PHP

<?php
namespace Combodo\iTop\Application\Status;
use Config;
use Exception;
use MetaModel;
define('STATUS_ERROR', 'ERROR');
define('STATUS_RUNNING', 'RUNNING');
/**
* Get approot.inc.php
* Move to a function for allowing a better testing
*
* @param string $sAppRootFilename
*
* @throws \Exception
*/
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
*/
function StatusCheckConfigFile($sConfigFilename = 'config-itop.php')
{
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 $oConfig
*
* @throws \CoreException
* @throws \DictExceptionUnknownLanguage
* @throws \MySQLException
*/
function StatusStartup(Config $oConfig = null)
{
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 /* $bModelOnly */);
}