419fb4d5855eda40902c11980af8492e958e0298
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Error / Message.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Error;
3
4 /* *
5 * This script belongs to the Extbase framework *
6 * *
7 * It is free software; you can redistribute it and/or modify it under *
8 * the terms of the GNU Lesser General Public License as published by the *
9 * Free Software Foundation, either version 3 of the License, or (at your *
10 * option) any later version. *
11 * *
12 * This script is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15 * General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License along with the script. *
19 * If not, see http://www.gnu.org/licenses/lgpl.html *
20 * *
21 * The TYPO3 project - inspiring people to share! *
22 * */
23 /**
24 * An object representation of a generic message. Usually, you will use Error, Warning or Notice instead of this one.
25 *
26 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
27 * @api
28 */
29 class Message
30 {
31 /**
32 * The default (english) error message
33 *
34 * @var string
35 */
36 protected $message = 'Unknown message';
37
38 /**
39 * The error code
40 *
41 * @var string
42 */
43 protected $code;
44
45 /**
46 * The message arguments. Will be replaced in the message body.
47 *
48 * @var array
49 */
50 protected $arguments = [];
51
52 /**
53 * An optional title for the message (used eg. in flashMessages).
54 *
55 * @var string
56 */
57 protected $title = '';
58
59 /**
60 * Constructs this error
61 *
62 * @param string $message An english error message which is used if no other error message can be resolved
63 * @param int $code A unique error code
64 * @param array $arguments Array of arguments to be replaced in message
65 * @param string $title optional title for the message
66 * @api
67 */
68 public function __construct($message, $code, array $arguments = [], $title = '')
69 {
70 $this->message = $message;
71 $this->code = $code;
72 $this->arguments = $arguments;
73 $this->title = $title;
74 }
75
76 /**
77 * Returns the error message
78 *
79 * @return string The error message
80 * @api
81 */
82 public function getMessage()
83 {
84 return $this->message;
85 }
86
87 /**
88 * Returns the error code
89 *
90 * @return string The error code
91 * @api
92 */
93 public function getCode()
94 {
95 return $this->code;
96 }
97
98 /**
99 * Get arguments
100 *
101 * @return array
102 * @api
103 */
104 public function getArguments()
105 {
106 return $this->arguments;
107 }
108
109 /**
110 * Get title
111 *
112 * @return string
113 * @api
114 */
115 public function getTitle()
116 {
117 return $this->title;
118 }
119
120 /**
121 * Return the rendered message
122 *
123 * @return string
124 * @api
125 */
126 public function render()
127 {
128 if (!empty($this->arguments)) {
129 return vsprintf($this->message, $this->arguments);
130 } else {
131 return $this->message;
132 }
133 }
134
135 /**
136 * Converts this error into a string
137 *
138 * @return string
139 * @api
140 */
141 public function __toString()
142 {
143 return $this->render();
144 }
145 }