Rev 1219 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
250 | daniel-mar | 1 | <?php |
2 | |||
3 | /* |
||
4 | * OIDplus 2.0 |
||
1086 | daniel-mar | 5 | * Copyright 2019 - 2023 Daniel Marschall, ViaThinkSoft |
250 | daniel-mar | 6 | * |
7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
||
8 | * you may not use this file except in compliance with the License. |
||
9 | * You may obtain a copy of the License at |
||
10 | * |
||
11 | * http://www.apache.org/licenses/LICENSE-2.0 |
||
12 | * |
||
13 | * Unless required by applicable law or agreed to in writing, software |
||
14 | * distributed under the License is distributed on an "AS IS" BASIS, |
||
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||
16 | * See the License for the specific language governing permissions and |
||
17 | * limitations under the License. |
||
18 | */ |
||
19 | |||
1050 | daniel-mar | 20 | namespace ViaThinkSoft\OIDplus; |
511 | daniel-mar | 21 | |
1086 | daniel-mar | 22 | // phpcs:disable PSR1.Files.SideEffects |
23 | \defined('INSIDE_OIDPLUS') or die; |
||
24 | // phpcs:enable PSR1.Files.SideEffects |
||
25 | |||
1201 | daniel-mar | 26 | /** |
27 | * Every Exception that is thrown in OIDplus should be an OIDplusException. |
||
28 | */ |
||
1050 | daniel-mar | 29 | class OIDplusException extends \Exception { |
250 | daniel-mar | 30 | |
1201 | daniel-mar | 31 | /** |
1203 | daniel-mar | 32 | * @var string|null |
33 | */ |
||
34 | protected $title = null; |
||
35 | |||
36 | /** |
||
1266 | daniel-mar | 37 | * @var int |
38 | */ |
||
39 | protected $httpStatus = 500; |
||
40 | |||
41 | /** |
||
1203 | daniel-mar | 42 | * @param string $message |
43 | * @param string|null $title |
||
1266 | daniel-mar | 44 | * @param int $httpStatus |
1203 | daniel-mar | 45 | */ |
1266 | daniel-mar | 46 | public function __construct(string $message, string $title=null, int $httpStatus=500) { |
1203 | daniel-mar | 47 | $this->title = $title; |
1266 | daniel-mar | 48 | $this->httpStatus = $httpStatus; |
1203 | daniel-mar | 49 | parent::__construct($message); |
50 | } |
||
51 | |||
52 | /** |
||
1201 | daniel-mar | 53 | * @return string |
54 | */ |
||
1203 | daniel-mar | 55 | public function getTitle(): string { |
1219 | daniel-mar | 56 | return $this->title ?? ''; |
1203 | daniel-mar | 57 | } |
58 | |||
59 | /** |
||
1266 | daniel-mar | 60 | * @return int |
61 | */ |
||
62 | public function getHttpStatus(): int { |
||
63 | return $this->httpStatus; |
||
64 | } |
||
65 | |||
66 | /** |
||
1203 | daniel-mar | 67 | * @return string |
68 | */ |
||
69 | public function getHtmlTitle(): string { |
||
70 | return htmlentities($this->getTitle(), ENT_SUBSTITUTE); // ENT_SUBSTITUTE because ODBC drivers might return ANSI instead of UTF-8 stuff |
||
71 | } |
||
1266 | daniel-mar | 72 | |
1203 | daniel-mar | 73 | /** |
74 | * @return string |
||
75 | */ |
||
1201 | daniel-mar | 76 | public function getHtmlMessage(): string { |
1219 | daniel-mar | 77 | return nl2br(htmlentities($this->getMessage(), ENT_SUBSTITUTE)); // ENT_SUBSTITUTE because ODBC drivers might return ANSI instead of UTF-8 stuff |
1201 | daniel-mar | 78 | } |
79 | |||
511 | daniel-mar | 80 | } |