forked from simplesamlphp/simplesamlphp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfigurationError.php
More file actions
81 lines (69 loc) · 1.94 KB
/
ConfigurationError.php
File metadata and controls
81 lines (69 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
declare(strict_types=1);
namespace SimpleSAML\Error;
use function dirname;
use function str_replace;
/**
* This exception represents a configuration error.
*
* @package SimpleSAMLphp
*/
class ConfigurationError extends Error
{
/**
* The reason for this exception.
*
* @var null|string
*/
protected ?string $reason;
/**
* The configuration file that caused this exception.
*
* @var null|string
*/
protected ?string $config_file;
/**
* ConfigurationError constructor.
*
* @param string|null $reason The reason for this exception.
* @param string|null $file The configuration file that originated this error.
* @param array|null $config The configuration array that led to this problem.
*/
public function __construct(?string $reason = null, ?string $file = null, ?array $config = null)
{
$file_str = '';
$reason_str = '.';
$params = [ErrorCodes::CONFIG];
if ($file !== null) {
$params['%FILE%'] = $file;
$basepath = dirname(__FILE__, 4) . '/';
$file_str = '(' . str_replace($basepath, '', $file) . ') ';
}
if ($reason !== null) {
$params['%REASON%'] = $reason;
$reason_str = ': ' . $reason;
}
$this->reason = $reason;
$this->config_file = $file;
parent::__construct($params);
$this->message = 'The configuration ' . $file_str . 'is invalid' . $reason_str;
}
/**
* Get the reason for this exception.
*
* @return null|string The reason for this exception.
*/
public function getReason(): ?string
{
return $this->reason;
}
/**
* Get the configuration file that caused this exception.
*
* @return null|string The configuration file that caused this exception.
*/
public function getConfFile(): ?string
{
return $this->config_file;
}
}