* @package SimpleSAMLphp */ namespace SimpleSAML\Error; class CriticalConfigurationError extends ConfigurationError { /** * This is the bare minimum configuration that we can use. * * @var array */ private static $minimum_config = array( 'logging.handler' => 'errorlog', 'logging.level' => \SimpleSAML\Logger::DEBUG, 'errorreporting' => false, 'debug' => true, ); /** * CriticalConfigurationError constructor. * * @param string|null $reason The reason for this critical error. * @param string|null $file The configuration file that originated this error. * @param array|null The configuration array that led to this problem. */ public function __construct($reason = null, $file = null, $config = null) { if ($config === null) { $config = self::$minimum_config; $config['baseurlpath'] = \SimpleSAML\Utils\HTTP::guessBasePath(); } \SimpleSAML_Configuration::loadFromArray( $config, '', 'simplesaml' ); parent::__construct($reason, $file); } /** * @param \Exception $exception * * @return CriticalConfigurationError */ public static function fromException(\Exception $exception) { $reason = null; $file = null; if ($exception instanceof ConfigurationError) { $reason = $exception->getReason(); $file = $exception->getConfFile(); } else { $reason = $exception->getMessage(); } return new CriticalConfigurationError($reason, $file); } }