38 case 'application/json':
43 case 'application/xml':
56 $body =
new Body(
fopen(
'php://temp',
'r+'));
74 $title =
'Slim Application Error';
76 if ($this->displayErrorDetails) {
77 $html =
'<p>The application could not run because of the following error:</p>';
78 $html .=
'<h2>Details</h2>';
81 while ($error = $error->getPrevious()) {
82 $html .=
'<h2>Previous error</h2>';
86 $html =
'<p>A website error has occurred. Sorry for the temporary inconvenience.</p>';
90 "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" .
91 "<title>%s</title><style>body{margin:0;padding:30px;font:12px/1.5 Helvetica,Arial,Verdana," .
92 "sans-serif;}h1{margin:0;font-size:48px;font-weight:normal;line-height:48px;}strong{" .
93 "display:inline-block;width:65px;}</style></head><body><h1>%s</h1>%s</body></html>",
111 $html = sprintf(
'<div><strong>Type:</strong> %s</div>', get_class($error));
113 if ((
$code = $error->getCode())) {
114 $html .= sprintf(
'<div><strong>Code:</strong> %s</div>',
$code);
117 if ((
$message = $error->getMessage())) {
118 $html .= sprintf(
'<div><strong>Message:</strong> %s</div>', htmlentities(
$message));
121 if (($file = $error->getFile())) {
122 $html .= sprintf(
'<div><strong>File:</strong> %s</div>', $file);
125 if (($line = $error->getLine())) {
126 $html .= sprintf(
'<div><strong>Line:</strong> %s</div>', $line);
129 if (($trace = $error->getTraceAsString())) {
130 $html .=
'<h2>Trace</h2>';
131 $html .= sprintf(
'<pre>%s</pre>', htmlentities($trace));
147 'message' =>
'Slim Application Error',
150 if ($this->displayErrorDetails) {
155 'type' => get_class($error),
156 'code' => $error->getCode(),
157 'message' => $error->getMessage(),
158 'file' => $error->getFile(),
159 'line' => $error->getLine(),
160 'trace' => explode(
"\n", $error->getTraceAsString()),
162 }
while ($error = $error->getPrevious());
165 return json_encode($json, JSON_PRETTY_PRINT);
177 $xml =
"<error>\n <message>Slim Application Error</message>\n";
178 if ($this->displayErrorDetails) {
180 $xml .=
" <error>\n";
181 $xml .=
" <type>" . get_class($error) .
"</type>\n";
182 $xml .=
" <code>" . $error->getCode() .
"</code>\n";
184 $xml .=
" <file>" . $error->getFile() .
"</file>\n";
185 $xml .=
" <line>" . $error->getLine() .
"</line>\n";
187 $xml .=
" </error>\n";
188 }
while ($error = $error->getPrevious());
203 return sprintf(
'<![CDATA[%s]]>', str_replace(
']]>',
']]]]><![CDATA[>', $content));
Representation of an incoming, server-side HTTP request.
foreach($paths as $path) $request
withStatus($code, $reasonPhrase='')
Return an instance with the specified status code and, optionally, reason phrase. ...
renderXmlErrorMessage(\Throwable $error)
Render XML error.
determineContentType(ServerRequestInterface $request)
Determine which content type we know about is wanted using Accept header.
writeToErrorLog($throwable)
Write to the error log if displayErrorDetails is false.
catch(Exception $e) $message
renderHtmlErrorMessage(\Throwable $error)
Render HTML error page.
createCdataSection($content)
Returns a CDATA section with the given content.
Representation of an outgoing, server-side response.
Abstract Slim application error handler.
renderHtmlError(\Throwable $error)
Render error as HTML.
renderJsonErrorMessage(\Throwable $error)
Render JSON error.
if($path[strlen($path) - 1]==='/') if(is_dir($path)) if(!file_exists($path)) if(preg_match('#\.php$#D', mb_strtolower($path, 'UTF-8'))) $contentType
Slim Framework (https://slimframework.com)
Default Slim application error handler for PHP 7+ Throwables.
__invoke(ServerRequestInterface $request, ResponseInterface $response, \Throwable $error)
Invoke error handler.