Warning (2) : include(/var/www/html/src/Middleware/SingleSessionMiddleware.php): failed to open stream: Permission denied [ROOT/vendor/composer/ClassLoader.php , line 444 ]Code Context {
include $file ;
}
$file =
'/var/www/html/vendor/composer/../../src/Middleware/SingleSessionMiddleware.php'
include - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
spl_autoload_call - [internal], line ??
App\Application::middleware() - APP/Application.php, line 91
Cake\Http\Server::run() - CORE/src/Http/Server.php, line 83
[main] - ROOT/webroot/index.php, line 40 Warning (512) : Unable to emit headers. Headers sent in file=/var/www/html/vendor/cakephp/cakephp/src/Error/Debugger.php line=970 [CORE/src/Http/ResponseEmitter.php , line 71 ]Code Context $message = "Unable to emit headers. Headers sent in file= $file line= $line " ;
trigger_error ( $message , E_USER_WARNING );
}
$response = object( Cake\Http\Response ) id: 0 {
'status' => (int) 500
'contentType' => 'text/html'
'headers' => [
'Content-Type' => [
(int) 0 => 'text/html; charset=UTF-8' ,
] ,
]
'file' => null
'fileRange' => [
]
'cookies' => object( Cake\Http\Cookie\CookieCollection ) id: 1 {
protected cookies => [
'' => [maximum depth reached] ,
]
}
'cacheDirectives' => [
]
'body' => '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Error: Class 'App\Middleware\SingleSessionMiddleware' not found </title>
<link href="/favicon.ico" type="image/x-icon" rel="icon"/><link href="/favicon.ico" type="image/x-icon" rel="shortcut icon"/> <style>
* {
box-sizing: border-box;
}
body {
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
color: #404041;
background: #F5F7FA;
font-size: 14px;
letter-spacing: .01em;
line-height: 1.6;
padding: 0 0 40px;
margin: 0;
height: 100%;
}
header {
flex: 1;
background-color: #D33C47;
color: #ffffff;
padding: 10px;
}
.header-title {
display: flex;
align-items: center;
font-size: 30px;
margin: 0;
}
.header-title a {
font-size: 18px;
cursor: pointer;
margin-left: 10px;
user-select: none;
}
.header-title code {
margin: 0 10px;
}
.header-description {
display: block;
font-size: 18px;
line-height: 1.2;
margin-bottom: 16px;
}
.header-type {
display: block;
font-size: 16px;
}
.header-help a {
color: #fff;
}
.error-content {
display: flex;
}
.col-left,
.col-right {
overflow-y: auto;
padding: 10px;
}
.col-left {
background: #ececec;
flex: 0 0 30%;
}
.col-right {
flex: 1;
}
.toggle-vendor-frames {
color: #404041;
display: block;
padding: 5px;
margin-bottom: 10px;
text-align: center;
text-decoration: none;
}
.toggle-vendor-frames:hover,
.toggle-vendor-frames:active {
background: #e5e5e5;
}
.code-dump,
pre {
background: #fff;
border-radius: 4px;
padding: 5px;
white-space: pre-wrap;
margin: 0;
}
.error,
.error-subheading {
font-size: 18px;
margin-top: 0;
padding: 20px 16px;
}
.error-subheading {
color: #fff;
background-color: #319795;
}
.error-subheading strong {
color: #fff;
background-color: #4fd1c5;
border-radius: 9999px;
padding: 4px 12px;
margin-right: 8px;
}
.error {
color: #fff;
background: #2779BD;
}
.error strong {
color: #fff;
background-color: #6CB2EB;
border-radius: 9999px;
padding: 4px 12px;
margin-right: 8px;
}
.stack-trace {
list-style: none;
margin: 0;
padding: 0;
}
.stack-frame {
background: #e5e5e5;
padding: 10px;
margin-bottom: 10px;
}
.stack-frame:last-child {
border-bottom: none;
margin-bottom: 0;
}
.stack-frame a {
display: block;
color: #212121;
text-decoration: none;
}
.stack-frame.active {
background: #F5F7FA;
}
.stack-frame a:hover {
text-decoration: underline;
}
.stack-frame-header {
display: flex;
align-items: center;
}
.stack-frame-file a {
color: #212121;
}
.stack-frame-args {
flex: 0 0 150px;
display: block;
padding: 8px 14px;
text-decoration: none;
background-color: #606c76;
border-radius: 4px;
cursor: pointer;
color: #fff;
text-align: center;
margin-bottom: 10px;
}
.stack-frame-args:hover {
background-color: #D33C47;
}
.stack-frame-file {
flex: 1;
word-break:break-all;
margin-right: 10px;
font-size: 16px;
}
.stack-file,
.stack-function {
display: block;
}
.stack-frame-file,
.stack-file {
font-family: consolas, monospace;
}
.stack-function {
font-weight: bold;
}
.stack-file {
font-size: 0.9em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
direction: rtl;
}
.stack-details {
background: #ececec;
border-radius: 4px;
padding: 10px;
margin-bottom: 18px;
}
.code-excerpt {
width: 100%;
margin: 10px 0 0 0;
background: #fefefe;
}
.code-highlight {
display: block;
background: #fff59d;
}
.excerpt-line {
padding: 0;
}
.excerpt-number {
background: #f6f6f6;
width: 50px;
text-align: right;
color: #666;
border-right: 1px solid #ddd;
padding: 2px;
}
.excerpt-number:after {
content: attr(data-number);
}
.cake-debug {
margin-top: 10px;
}
table {
text-align: left;
}
th, td {
padding: 4px;
}
th {
border-bottom: 1px solid #ccc;
}
</style>
</head>
<body>
<header>
<h1 class="header-title">
<span>Class 'App\Middleware\SingleSessionMiddleware' not found</span>
<a>📋</a>
</h1>
<span class="header-type">Error</span>
</header>
<div class="error-content">
<div class="col-left">
<a href="#" class="toggle-link toggle-vendor-frames">Toggle Vendor Stack Frames</a>
<ul class="stack-trace">
<li class="stack-frame app-frame active">
<a href="#" data-target="stack-frame-0">
<span class="stack-file">
APP/Application.php:91 </span>
</a>
</li>
<li class="stack-frame vendor-frame">
<a href="#" data-target="stack-frame-1">
<span class="stack-function">App\Application->middleware</span>
<span class="stack-file">
CORE/src/Http/Server.php:83 </span>
</a>
</li>
<li class="stack-frame vendor-frame">
<a href="#" data-target="stack-frame-2">
<span class="stack-function">Cake\Http\Server->run</span>
<span class="stack-file">
ROOT/webroot/index.php:40 </span>
</a>
</li>
</ul>
</div>
<div class="col-right">
<div id="stack-frame-0" style="display:block;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/src/Application.php&line=91">APP/Application.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-0">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="87"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $middlewareQueue</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="88"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// Catch any exceptions in the lower layers,</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="89"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// and make an error page/response</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="90"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">ErrorHandlerMiddleware</span><span style="color: #007700">(</span><span style="color: #0000BB">Configure</span><span style="color: #007700">::</span><span style="color: #0000BB">read</span><span style="color: #007700">(</span><span style="color: #DD0000">'Error'</span><span style="color: #007700">)))</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="91"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">SingleSessionMiddleware</span><span style="color: #007700">()) </span><span style="color: #FF8000">// your custom Middleware For Single Session at a time (concurrent login not allowed)</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="92"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="93"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="94"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// Handle plugin/theme assets like CakePHP normally does.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="95"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">AssetMiddleware</span><span style="color: #007700">([</span></span></code></td>
</tr>
</table>
<div id="stack-args-0" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
</div>
</div>
<div id="stack-frame-1" style="display:none;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/vendor/cakephp/cakephp/src/Http/Server.php&line=83">CORE/src/Http/Server.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-1">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="79"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $this</span><span style="color: #007700">-></span><span style="color: #0000BB">bootstrap</span><span style="color: #007700">();</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="80"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="81"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $request </span><span style="color: #007700">= </span><span style="color: #0000BB">$request </span><span style="color: #007700">?: </span><span style="color: #0000BB">ServerRequestFactory</span><span style="color: #007700">::</span><span style="color: #0000BB">fromGlobals</span><span style="color: #007700">();</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="82"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="83"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB"> $middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app</span><span style="color: #007700">-></span><span style="color: #0000BB">middleware</span><span style="color: #007700">(</span><span style="color: #0000BB">$middlewareQueue </span><span style="color: #007700">?? new </span><span style="color: #0000BB">MiddlewareQueue</span><span style="color: #007700">());</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="84"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app </span><span style="color: #007700">instanceof </span><span style="color: #0000BB">PluginApplicationInterface</span><span style="color: #007700">) {</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="85"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app</span><span style="color: #007700">-></span><span style="color: #0000BB">pluginMiddleware</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">);</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="86"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">}</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="87"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
</table>
<div id="stack-args-1" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
<div class="cake-debug"><div class="cake-dbg"><span class="cake-dbg-object" id="cake-db-object-68c82340d96f13.79904310-0"><span class="cake-dbg-punct">object(</span><span class="cake-dbg-class">Cake\Http\MiddlewareQueue</span><span class="cake-dbg-punct">) id:</span><span class="cake-dbg-number">0</span><span class="cake-dbg-punct"> {</span><samp class="cake-dbg-object-props">
<span class="cake-dbg-prop"><span class="cake-dbg-visibility">protected</span> <span class="cake-dbg-property">position</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-visibility">(int)</span> <span class="cake-dbg-number">0</span></span>
<span class="cake-dbg-prop"><span class="cake-dbg-visibility">protected</span> <span class="cake-dbg-property">queue</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-array"><span class="cake-dbg-punct">[</span><samp class="cake-dbg-array-items">
<span class="cake-dbg-array-item"><span class="cake-dbg-visibility">(int)</span> <span class="cake-dbg-number">0</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-object" id="cake-db-object-68c82340d96f13.79904310-1"><span class="cake-dbg-punct">object(</span><span class="cake-dbg-class">Cake\Error\Middleware\ErrorHandlerMiddleware</span><span class="cake-dbg-punct">) id:</span><span class="cake-dbg-number">1</span><span class="cake-dbg-punct"> {</span><samp class="cake-dbg-object-props"></samp>
<span class="cake-dbg-punct">}</span></span><span class="cake-dbg-punct">,</span></span></samp>
<span class="cake-dbg-punct">]</span></span></span></samp>
<span class="cake-dbg-punct">}</span></span></div></div>
</div>
</div>
<div id="stack-frame-2" style="display:none;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/webroot/index.php&line=40">ROOT/webroot/index.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-2">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="36"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">// Bind your application to the server.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="37"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB">$server </span><span style="color: #007700">= new </span><span style="color: #0000BB">Server</span><span style="color: #007700">(new </span><span style="color: #0000BB">Application</span><span style="color: #007700">(</span><span style="color: #0000BB">dirname</span><span style="color: #007700">(</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">) . </span><span style="color: #DD0000">'/config'</span><span style="color: #007700">));</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="38"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="39"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">// Run the request/response through the application and emit the response.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="40"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB">$server</span><span style="color: #007700">-></span><span style="color: #0000BB">emit</span><span style="color: #007700">(</span><span style="color: #0000BB">$server</span><span style="color: #007700">-></span><span style="color: #0000BB">run</span><span style="color: #007700">());</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="41"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
</table>
<div id="stack-args-2" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
<div class="cake-debug">No arguments</div>
</div>
</div>
<div class="error-suggestion">
<strong>Error in: </strong>
ROOT/src/Application.php, line 91 </div>
<p class="customize">
If you want to customize this error message, create
<em>templates/Error/error500.php</em>
</p>
</div>
</div>
<script type="text/javascript">
function bindEvent(selector, eventName, listener) {
var els = document.querySelectorAll(selector);
for (var i = 0, len = els.length; i < len; i++) {
els[i].addEventListener(eventName, listener, false);
}
}
function toggleElement(el) {
if (el.style.display === 'none') {
el.style.display = 'block';
} else {
el.style.display = 'none';
}
}
function each(els, cb) {
var i, len;
for (i = 0, len = els.length; i < len; i++) {
cb(els[i], i);
}
}
window.addEventListener('load', function() {
bindEvent('.stack-frame-args', 'click', function(event) {
var target = this.dataset['target'];
var el = document.getElementById(target);
toggleElement(el);
event.preventDefault();
});
var details = document.querySelectorAll('.stack-details');
var frames = document.querySelectorAll('.stack-frame');
bindEvent('.stack-frame a', 'click', function(event) {
each(frames, function(el) {
el.classList.remove('active');
});
this.parentNode.classList.add('active');
each(details, function(el) {
el.style.display = 'none';
});
var target = document.getElementById(this.dataset['target']);
toggleElement(target);
event.preventDefault();
});
bindEvent('.toggle-vendor-frames', 'click', function(event) {
each(frames, function(el) {
if (el.classList.contains('vendor-frame')) {
toggleElement(el);
}
});
event.preventDefault();
});
bindEvent('.header-title a', 'click', function(event) {
event.preventDefault();
var text = '';
each(this.parentNode.childNodes, function(el) {
if (el.nodeName !== 'A') {
text += el.textContent.trim();
}
});
// Use execCommand(copy) as it has the widest support.
var textArea = document.createElement("textarea");
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
var el = this;
try {
document.execCommand('copy');
// Show a success icon and then revert
var original = el.innerText;
el.innerText = '\ud83c\udf70';
setTimeout(function () {
el.innerText = original;
}, 1000);
} catch (err) {
alert('Unable to update clipboard ' + err);
}
document.body.removeChild(textArea);
this.parentNode.parentNode.scrollIntoView(true);
});
});
</script>
</body>
</html>
'
protected _statusCodes => [
(int) 100 => 'Continue' ,
(int) 101 => 'Switching Protocols' ,
(int) 102 => 'Processing' ,
(int) 200 => 'OK' ,
(int) 201 => 'Created' ,
(int) 202 => 'Accepted' ,
(int) 203 => 'Non-Authoritative Information' ,
(int) 204 => 'No Content' ,
(int) 205 => 'Reset Content' ,
(int) 206 => 'Partial Content' ,
(int) 207 => 'Multi-status' ,
(int) 208 => 'Already Reported' ,
(int) 226 => 'IM used' ,
(int) 300 => 'Multiple Choices' ,
(int) 301 => 'Moved Permanently' ,
(int) 302 => 'Found' ,
(int) 303 => 'See Other' ,
(int) 304 => 'Not Modified' ,
(int) 305 => 'Use Proxy' ,
(int) 306 => '(Unused)' ,
(int) 307 => 'Temporary Redirect' ,
(int) 308 => 'Permanent Redirect' ,
(int) 400 => 'Bad Request' ,
(int) 401 => 'Unauthorized' ,
(int) 402 => 'Payment Required' ,
(int) 403 => 'Forbidden' ,
(int) 404 => 'Not Found' ,
(int) 405 => 'Method Not Allowed' ,
(int) 406 => 'Not Acceptable' ,
(int) 407 => 'Proxy Authentication Required' ,
(int) 408 => 'Request Timeout' ,
(int) 409 => 'Conflict' ,
(int) 410 => 'Gone' ,
(int) 411 => 'Length Required' ,
(int) 412 => 'Precondition Failed' ,
(int) 413 => 'Request Entity Too Large' ,
(int) 414 => 'Request-URI Too Large' ,
(int) 415 => 'Unsupported Media Type' ,
(int) 416 => 'Requested range not satisfiable' ,
(int) 417 => 'Expectation Failed' ,
(int) 418 => 'I'm a teapot' ,
(int) 421 => 'Misdirected Request' ,
(int) 422 => 'Unprocessable Entity' ,
(int) 423 => 'Locked' ,
(int) 424 => 'Failed Dependency' ,
(int) 425 => 'Unordered Collection' ,
(int) 426 => 'Upgrade Required' ,
(int) 428 => 'Precondition Required' ,
(int) 429 => 'Too Many Requests' ,
(int) 431 => 'Request Header Fields Too Large' ,
(int) 444 => 'Connection Closed Without Response' ,
(int) 451 => 'Unavailable For Legal Reasons' ,
(int) 499 => 'Client Closed Request' ,
(int) 500 => 'Internal Server Error' ,
(int) 501 => 'Not Implemented' ,
(int) 502 => 'Bad Gateway' ,
(int) 503 => 'Service Unavailable' ,
(int) 504 => 'Gateway Timeout' ,
(int) 505 => 'Unsupported Version' ,
(int) 506 => 'Variant Also Negotiates' ,
(int) 507 => 'Insufficient Storage' ,
(int) 508 => 'Loop Detected' ,
(int) 510 => 'Not Extended' ,
(int) 511 => 'Network Authentication Required' ,
(int) 599 => 'Network Connect Timeout Error' ,
]
protected _mimeTypes => [
'html' => [
'' => [maximum depth reached] ,
] ,
'json' => 'application/json' ,
'xml' => [
'' => [maximum depth reached] ,
] ,
'xhtml' => [
'' => [maximum depth reached] ,
] ,
'webp' => 'image/webp' ,
'rss' => 'application/rss+xml' ,
'ai' => 'application/postscript' ,
'bcpio' => 'application/x-bcpio' ,
'bin' => 'application/octet-stream' ,
'ccad' => 'application/clariscad' ,
'cdf' => 'application/x-netcdf' ,
'class' => 'application/octet-stream' ,
'cpio' => 'application/x-cpio' ,
'cpt' => 'application/mac-compactpro' ,
'csh' => 'application/x-csh' ,
'csv' => [
'' => [maximum depth reached] ,
] ,
'dcr' => 'application/x-director' ,
'dir' => 'application/x-director' ,
'dms' => 'application/octet-stream' ,
'doc' => 'application/msword' ,
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ,
'drw' => 'application/drafting' ,
'dvi' => 'application/x-dvi' ,
'dwg' => 'application/acad' ,
'dxf' => 'application/dxf' ,
'dxr' => 'application/x-director' ,
'eot' => 'application/vnd.ms-fontobject' ,
'eps' => 'application/postscript' ,
'exe' => 'application/octet-stream' ,
'ez' => 'application/andrew-inset' ,
'flv' => 'video/x-flv' ,
'gtar' => 'application/x-gtar' ,
'gz' => 'application/x-gzip' ,
'bz2' => 'application/x-bzip' ,
'7z' => 'application/x-7z-compressed' ,
'haljson' => [
'' => [maximum depth reached] ,
] ,
'halxml' => [
'' => [maximum depth reached] ,
] ,
'hdf' => 'application/x-hdf' ,
'hqx' => 'application/mac-binhex40' ,
'ico' => 'image/x-icon' ,
'ips' => 'application/x-ipscript' ,
'ipx' => 'application/x-ipix' ,
'js' => 'application/javascript' ,
'jsonapi' => 'application/vnd.api+json' ,
'latex' => 'application/x-latex' ,
'jsonld' => 'application/ld+json' ,
'lha' => 'application/octet-stream' ,
'lsp' => 'application/x-lisp' ,
'lzh' => 'application/octet-stream' ,
'man' => 'application/x-troff-man' ,
'me' => 'application/x-troff-me' ,
'mif' => 'application/vnd.mif' ,
'ms' => 'application/x-troff-ms' ,
'nc' => 'application/x-netcdf' ,
'oda' => 'application/oda' ,
'otf' => 'font/otf' ,
'pdf' => 'application/pdf' ,
'pgn' => 'application/x-chess-pgn' ,
'pot' => 'application/vnd.ms-powerpoint' ,
'pps' => 'application/vnd.ms-powerpoint' ,
'ppt' => 'application/vnd.ms-powerpoint' ,
'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation' ,
'ppz' => 'application/vnd.ms-powerpoint' ,
'pre' => 'application/x-freelance' ,
'prt' => 'application/pro_eng' ,
'ps' => 'application/postscript' ,
'roff' => 'application/x-troff' ,
'scm' => 'application/x-lotusscreencam' ,
'set' => 'application/set' ,
'sh' => 'application/x-sh' ,
'shar' => 'application/x-shar' ,
'sit' => 'application/x-stuffit' ,
'skd' => 'application/x-koan' ,
'skm' => 'application/x-koan' ,
'skp' => 'application/x-koan' ,
'skt' => 'application/x-koan' ,
'smi' => 'application/smil' ,
'smil' => 'application/smil' ,
'sol' => 'application/solids' ,
'spl' => 'application/x-futuresplash' ,
'src' => 'application/x-wais-source' ,
'step' => 'application/STEP' ,
'stl' => 'application/SLA' ,
'stp' => 'application/STEP' ,
'sv4cpio' => 'application/x-sv4cpio' ,
'sv4crc' => 'application/x-sv4crc' ,
'svg' => 'image/svg+xml' ,
'svgz' => 'image/svg+xml' ,
'swf' => 'application/x-shockwave-flash' ,
't' => 'application/x-troff' ,
'tar' => 'application/x-tar' ,
'tcl' => 'application/x-tcl' ,
'tex' => 'application/x-tex' ,
'texi' => 'application/x-texinfo' ,
'texinfo' => 'application/x-texinfo' ,
'tr' => 'application/x-troff' ,
'tsp' => 'application/dsptype' ,
'ttc' => 'font/ttf' ,
'ttf' => 'font/ttf' ,
'unv' => 'application/i-deas' ,
'ustar' => 'application/x-ustar' ,
'vcd' => 'application/x-cdlink' ,
'vda' => 'application/vda' ,
'xlc' => 'application/vnd.ms-excel' ,
'xll' => 'application/vnd.ms-excel' ,
'xlm' => 'application/vnd.ms-excel' ,
'xls' => 'application/vnd.ms-excel' ,
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ,
'xlw' => 'application/vnd.ms-excel' ,
'zip' => 'application/zip' ,
'aif' => 'audio/x-aiff' ,
'aifc' => 'audio/x-aiff' ,
'aiff' => 'audio/x-aiff' ,
'au' => 'audio/basic' ,
'kar' => 'audio/midi' ,
'mid' => 'audio/midi' ,
'midi' => 'audio/midi' ,
'mp2' => 'audio/mpeg' ,
'mp3' => 'audio/mpeg' ,
'mpga' => 'audio/mpeg' ,
'ogg' => 'audio/ogg' ,
'oga' => 'audio/ogg' ,
'spx' => 'audio/ogg' ,
'ra' => 'audio/x-realaudio' ,
'ram' => 'audio/x-pn-realaudio' ,
'rm' => 'audio/x-pn-realaudio' ,
'rpm' => 'audio/x-pn-realaudio-plugin' ,
'snd' => 'audio/basic' ,
'tsi' => 'audio/TSP-audio' ,
'wav' => 'audio/x-wav' ,
'aac' => 'audio/aac' ,
'asc' => 'text/plain' ,
'c' => 'text/plain' ,
'cc' => 'text/plain' ,
'css' => 'text/css' ,
'etx' => 'text/x-setext' ,
'f' => 'text/plain' ,
'f90' => 'text/plain' ,
'h' => 'text/plain' ,
'hh' => 'text/plain' ,
'htm' => [
'' => [maximum depth reached] ,
] ,
'ics' => 'text/calendar' ,
'm' => 'text/plain' ,
'rtf' => 'text/rtf' ,
'rtx' => 'text/richtext' ,
'sgm' => 'text/sgml' ,
'sgml' => 'text/sgml' ,
'tsv' => 'text/tab-separated-values' ,
'tpl' => 'text/template' ,
'txt' => 'text/plain' ,
'text' => 'text/plain' ,
'avi' => 'video/x-msvideo' ,
'fli' => 'video/x-fli' ,
'mov' => 'video/quicktime' ,
'movie' => 'video/x-sgi-movie' ,
'mpe' => 'video/mpeg' ,
'mpeg' => 'video/mpeg' ,
'mpg' => 'video/mpeg' ,
'qt' => 'video/quicktime' ,
'viv' => 'video/vnd.vivo' ,
'vivo' => 'video/vnd.vivo' ,
'ogv' => 'video/ogg' ,
'webm' => 'video/webm' ,
'mp4' => 'video/mp4' ,
'm4v' => 'video/mp4' ,
'f4v' => 'video/mp4' ,
'f4p' => 'video/mp4' ,
'm4a' => 'audio/mp4' ,
'f4a' => 'audio/mp4' ,
'f4b' => 'audio/mp4' ,
'gif' => 'image/gif' ,
'ief' => 'image/ief' ,
'jpg' => 'image/jpeg' ,
'jpeg' => 'image/jpeg' ,
'jpe' => 'image/jpeg' ,
'pbm' => 'image/x-portable-bitmap' ,
'pgm' => 'image/x-portable-graymap' ,
'png' => 'image/png' ,
'pnm' => 'image/x-portable-anymap' ,
'ppm' => 'image/x-portable-pixmap' ,
'ras' => 'image/cmu-raster' ,
'rgb' => 'image/x-rgb' ,
'tif' => 'image/tiff' ,
'tiff' => 'image/tiff' ,
'xbm' => 'image/x-xbitmap' ,
'xpm' => 'image/x-xpixmap' ,
'xwd' => 'image/x-xwindowdump' ,
'psd' => [
'' => [maximum depth reached] ,
] ,
'ice' => 'x-conference/x-cooltalk' ,
'iges' => 'model/iges' ,
'igs' => 'model/iges' ,
'mesh' => 'model/mesh' ,
'msh' => 'model/mesh' ,
'silo' => 'model/mesh' ,
'vrml' => 'model/vrml' ,
'wrl' => 'model/vrml' ,
'mime' => 'www/mime' ,
'pdb' => 'chemical/x-pdb' ,
'xyz' => 'chemical/x-pdb' ,
'javascript' => 'application/javascript' ,
'form' => 'application/x-www-form-urlencoded' ,
'file' => 'multipart/form-data' ,
'xhtml-mobile' => 'application/vnd.wap.xhtml+xml' ,
'atom' => 'application/atom+xml' ,
'amf' => 'application/x-amf' ,
'wap' => [
'' => [maximum depth reached] ,
] ,
'wml' => 'text/vnd.wap.wml' ,
'wmlscript' => 'text/vnd.wap.wmlscript' ,
'wbmp' => 'image/vnd.wap.wbmp' ,
'woff' => 'application/x-font-woff' ,
'appcache' => 'text/cache-manifest' ,
'manifest' => 'text/cache-manifest' ,
'htc' => 'text/x-component' ,
'rdf' => 'application/xml' ,
'crx' => 'application/x-chrome-extension' ,
'oex' => 'application/x-opera-extension' ,
'xpi' => 'application/x-xpinstall' ,
'safariextz' => 'application/octet-stream' ,
'webapp' => 'application/x-web-app-manifest+json' ,
'vcf' => 'text/x-vcard' ,
'vtt' => 'text/vtt' ,
'mkv' => 'video/x-matroska' ,
'pkpass' => 'application/vnd.apple.pkpass' ,
'ajax' => 'text/html' ,
'bmp' => 'image/bmp' ,
]
protected _status => (int) 500
protected _file => null
protected _fileRange => [
]
protected _charset => 'UTF-8'
protected _cacheDirectives => [
]
protected _cookies => object( Cake\Http\Cookie\CookieCollection ) id: 1 {}
protected _reasonPhrase => 'Internal Server Error'
protected _streamMode => 'wb+'
protected _streamTarget => 'php://memory'
protected headers => [
'Content-Type' => [
'' => [maximum depth reached] ,
] ,
]
protected headerNames => [
'content-type' => 'Content-Type' ,
]
private protocol => '1.1'
private stream => object( Laminas\Diactoros\Stream ) id: 2 {
}
}
$file = '/var/www/html/vendor/cakephp/cakephp/src/Error/Debugger.php'
$line = (int) 970
$message = 'Unable to emit headers. Headers sent in file=/var/www/html/vendor/cakephp/cakephp/src/Error/Debugger.php line=970'
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 71
Cake\Error\ErrorHandler::_sendResponse() - CORE/src/Error/ErrorHandler.php, line 214
Cake\Error\ErrorHandler::_displayException() - CORE/src/Error/ErrorHandler.php, line 139
Cake\Error\BaseErrorHandler::handleException() - CORE/src/Error/BaseErrorHandler.php, line 221
[main] - [internal], line ?? Warning (2) : Cannot modify header information - headers already sent by (output started at /var/www/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php , line 168 ]Code Context $response -> getStatusCode (),
( $reasonPhrase ? ' ' . $reasonPhrase : '' )
));
$response = object( Cake\Http\Response ) id: 0 {
'status' => (int) 500
'contentType' => 'text/html'
'headers' => [
'Content-Type' => [
(int) 0 => 'text/html; charset=UTF-8' ,
] ,
]
'file' => null
'fileRange' => [
]
'cookies' => object( Cake\Http\Cookie\CookieCollection ) id: 1 {
protected cookies => [
'' => [maximum depth reached] ,
]
}
'cacheDirectives' => [
]
'body' => '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Error: Class 'App\Middleware\SingleSessionMiddleware' not found </title>
<link href="/favicon.ico" type="image/x-icon" rel="icon"/><link href="/favicon.ico" type="image/x-icon" rel="shortcut icon"/> <style>
* {
box-sizing: border-box;
}
body {
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
color: #404041;
background: #F5F7FA;
font-size: 14px;
letter-spacing: .01em;
line-height: 1.6;
padding: 0 0 40px;
margin: 0;
height: 100%;
}
header {
flex: 1;
background-color: #D33C47;
color: #ffffff;
padding: 10px;
}
.header-title {
display: flex;
align-items: center;
font-size: 30px;
margin: 0;
}
.header-title a {
font-size: 18px;
cursor: pointer;
margin-left: 10px;
user-select: none;
}
.header-title code {
margin: 0 10px;
}
.header-description {
display: block;
font-size: 18px;
line-height: 1.2;
margin-bottom: 16px;
}
.header-type {
display: block;
font-size: 16px;
}
.header-help a {
color: #fff;
}
.error-content {
display: flex;
}
.col-left,
.col-right {
overflow-y: auto;
padding: 10px;
}
.col-left {
background: #ececec;
flex: 0 0 30%;
}
.col-right {
flex: 1;
}
.toggle-vendor-frames {
color: #404041;
display: block;
padding: 5px;
margin-bottom: 10px;
text-align: center;
text-decoration: none;
}
.toggle-vendor-frames:hover,
.toggle-vendor-frames:active {
background: #e5e5e5;
}
.code-dump,
pre {
background: #fff;
border-radius: 4px;
padding: 5px;
white-space: pre-wrap;
margin: 0;
}
.error,
.error-subheading {
font-size: 18px;
margin-top: 0;
padding: 20px 16px;
}
.error-subheading {
color: #fff;
background-color: #319795;
}
.error-subheading strong {
color: #fff;
background-color: #4fd1c5;
border-radius: 9999px;
padding: 4px 12px;
margin-right: 8px;
}
.error {
color: #fff;
background: #2779BD;
}
.error strong {
color: #fff;
background-color: #6CB2EB;
border-radius: 9999px;
padding: 4px 12px;
margin-right: 8px;
}
.stack-trace {
list-style: none;
margin: 0;
padding: 0;
}
.stack-frame {
background: #e5e5e5;
padding: 10px;
margin-bottom: 10px;
}
.stack-frame:last-child {
border-bottom: none;
margin-bottom: 0;
}
.stack-frame a {
display: block;
color: #212121;
text-decoration: none;
}
.stack-frame.active {
background: #F5F7FA;
}
.stack-frame a:hover {
text-decoration: underline;
}
.stack-frame-header {
display: flex;
align-items: center;
}
.stack-frame-file a {
color: #212121;
}
.stack-frame-args {
flex: 0 0 150px;
display: block;
padding: 8px 14px;
text-decoration: none;
background-color: #606c76;
border-radius: 4px;
cursor: pointer;
color: #fff;
text-align: center;
margin-bottom: 10px;
}
.stack-frame-args:hover {
background-color: #D33C47;
}
.stack-frame-file {
flex: 1;
word-break:break-all;
margin-right: 10px;
font-size: 16px;
}
.stack-file,
.stack-function {
display: block;
}
.stack-frame-file,
.stack-file {
font-family: consolas, monospace;
}
.stack-function {
font-weight: bold;
}
.stack-file {
font-size: 0.9em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
direction: rtl;
}
.stack-details {
background: #ececec;
border-radius: 4px;
padding: 10px;
margin-bottom: 18px;
}
.code-excerpt {
width: 100%;
margin: 10px 0 0 0;
background: #fefefe;
}
.code-highlight {
display: block;
background: #fff59d;
}
.excerpt-line {
padding: 0;
}
.excerpt-number {
background: #f6f6f6;
width: 50px;
text-align: right;
color: #666;
border-right: 1px solid #ddd;
padding: 2px;
}
.excerpt-number:after {
content: attr(data-number);
}
.cake-debug {
margin-top: 10px;
}
table {
text-align: left;
}
th, td {
padding: 4px;
}
th {
border-bottom: 1px solid #ccc;
}
</style>
</head>
<body>
<header>
<h1 class="header-title">
<span>Class 'App\Middleware\SingleSessionMiddleware' not found</span>
<a>📋</a>
</h1>
<span class="header-type">Error</span>
</header>
<div class="error-content">
<div class="col-left">
<a href="#" class="toggle-link toggle-vendor-frames">Toggle Vendor Stack Frames</a>
<ul class="stack-trace">
<li class="stack-frame app-frame active">
<a href="#" data-target="stack-frame-0">
<span class="stack-file">
APP/Application.php:91 </span>
</a>
</li>
<li class="stack-frame vendor-frame">
<a href="#" data-target="stack-frame-1">
<span class="stack-function">App\Application->middleware</span>
<span class="stack-file">
CORE/src/Http/Server.php:83 </span>
</a>
</li>
<li class="stack-frame vendor-frame">
<a href="#" data-target="stack-frame-2">
<span class="stack-function">Cake\Http\Server->run</span>
<span class="stack-file">
ROOT/webroot/index.php:40 </span>
</a>
</li>
</ul>
</div>
<div class="col-right">
<div id="stack-frame-0" style="display:block;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/src/Application.php&line=91">APP/Application.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-0">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="87"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $middlewareQueue</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="88"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// Catch any exceptions in the lower layers,</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="89"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// and make an error page/response</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="90"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">ErrorHandlerMiddleware</span><span style="color: #007700">(</span><span style="color: #0000BB">Configure</span><span style="color: #007700">::</span><span style="color: #0000BB">read</span><span style="color: #007700">(</span><span style="color: #DD0000">'Error'</span><span style="color: #007700">)))</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="91"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">SingleSessionMiddleware</span><span style="color: #007700">()) </span><span style="color: #FF8000">// your custom Middleware For Single Session at a time (concurrent login not allowed)</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="92"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="93"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="94"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// Handle plugin/theme assets like CakePHP normally does.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="95"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">AssetMiddleware</span><span style="color: #007700">([</span></span></code></td>
</tr>
</table>
<div id="stack-args-0" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
</div>
</div>
<div id="stack-frame-1" style="display:none;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/vendor/cakephp/cakephp/src/Http/Server.php&line=83">CORE/src/Http/Server.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-1">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="79"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $this</span><span style="color: #007700">-></span><span style="color: #0000BB">bootstrap</span><span style="color: #007700">();</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="80"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="81"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $request </span><span style="color: #007700">= </span><span style="color: #0000BB">$request </span><span style="color: #007700">?: </span><span style="color: #0000BB">ServerRequestFactory</span><span style="color: #007700">::</span><span style="color: #0000BB">fromGlobals</span><span style="color: #007700">();</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="82"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="83"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB"> $middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app</span><span style="color: #007700">-></span><span style="color: #0000BB">middleware</span><span style="color: #007700">(</span><span style="color: #0000BB">$middlewareQueue </span><span style="color: #007700">?? new </span><span style="color: #0000BB">MiddlewareQueue</span><span style="color: #007700">());</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="84"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app </span><span style="color: #007700">instanceof </span><span style="color: #0000BB">PluginApplicationInterface</span><span style="color: #007700">) {</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="85"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app</span><span style="color: #007700">-></span><span style="color: #0000BB">pluginMiddleware</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">);</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="86"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">}</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="87"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
</table>
<div id="stack-args-1" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
<div class="cake-debug"><div class="cake-dbg"><span class="cake-dbg-object" id="cake-db-object-68c82340d96f13.79904310-0"><span class="cake-dbg-punct">object(</span><span class="cake-dbg-class">Cake\Http\MiddlewareQueue</span><span class="cake-dbg-punct">) id:</span><span class="cake-dbg-number">0</span><span class="cake-dbg-punct"> {</span><samp class="cake-dbg-object-props">
<span class="cake-dbg-prop"><span class="cake-dbg-visibility">protected</span> <span class="cake-dbg-property">position</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-visibility">(int)</span> <span class="cake-dbg-number">0</span></span>
<span class="cake-dbg-prop"><span class="cake-dbg-visibility">protected</span> <span class="cake-dbg-property">queue</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-array"><span class="cake-dbg-punct">[</span><samp class="cake-dbg-array-items">
<span class="cake-dbg-array-item"><span class="cake-dbg-visibility">(int)</span> <span class="cake-dbg-number">0</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-object" id="cake-db-object-68c82340d96f13.79904310-1"><span class="cake-dbg-punct">object(</span><span class="cake-dbg-class">Cake\Error\Middleware\ErrorHandlerMiddleware</span><span class="cake-dbg-punct">) id:</span><span class="cake-dbg-number">1</span><span class="cake-dbg-punct"> {</span><samp class="cake-dbg-object-props"></samp>
<span class="cake-dbg-punct">}</span></span><span class="cake-dbg-punct">,</span></span></samp>
<span class="cake-dbg-punct">]</span></span></span></samp>
<span class="cake-dbg-punct">}</span></span></div></div>
</div>
</div>
<div id="stack-frame-2" style="display:none;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/webroot/index.php&line=40">ROOT/webroot/index.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-2">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="36"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">// Bind your application to the server.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="37"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB">$server </span><span style="color: #007700">= new </span><span style="color: #0000BB">Server</span><span style="color: #007700">(new </span><span style="color: #0000BB">Application</span><span style="color: #007700">(</span><span style="color: #0000BB">dirname</span><span style="color: #007700">(</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">) . </span><span style="color: #DD0000">'/config'</span><span style="color: #007700">));</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="38"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="39"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">// Run the request/response through the application and emit the response.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="40"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB">$server</span><span style="color: #007700">-></span><span style="color: #0000BB">emit</span><span style="color: #007700">(</span><span style="color: #0000BB">$server</span><span style="color: #007700">-></span><span style="color: #0000BB">run</span><span style="color: #007700">());</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="41"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
</table>
<div id="stack-args-2" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
<div class="cake-debug">No arguments</div>
</div>
</div>
<div class="error-suggestion">
<strong>Error in: </strong>
ROOT/src/Application.php, line 91 </div>
<p class="customize">
If you want to customize this error message, create
<em>templates/Error/error500.php</em>
</p>
</div>
</div>
<script type="text/javascript">
function bindEvent(selector, eventName, listener) {
var els = document.querySelectorAll(selector);
for (var i = 0, len = els.length; i < len; i++) {
els[i].addEventListener(eventName, listener, false);
}
}
function toggleElement(el) {
if (el.style.display === 'none') {
el.style.display = 'block';
} else {
el.style.display = 'none';
}
}
function each(els, cb) {
var i, len;
for (i = 0, len = els.length; i < len; i++) {
cb(els[i], i);
}
}
window.addEventListener('load', function() {
bindEvent('.stack-frame-args', 'click', function(event) {
var target = this.dataset['target'];
var el = document.getElementById(target);
toggleElement(el);
event.preventDefault();
});
var details = document.querySelectorAll('.stack-details');
var frames = document.querySelectorAll('.stack-frame');
bindEvent('.stack-frame a', 'click', function(event) {
each(frames, function(el) {
el.classList.remove('active');
});
this.parentNode.classList.add('active');
each(details, function(el) {
el.style.display = 'none';
});
var target = document.getElementById(this.dataset['target']);
toggleElement(target);
event.preventDefault();
});
bindEvent('.toggle-vendor-frames', 'click', function(event) {
each(frames, function(el) {
if (el.classList.contains('vendor-frame')) {
toggleElement(el);
}
});
event.preventDefault();
});
bindEvent('.header-title a', 'click', function(event) {
event.preventDefault();
var text = '';
each(this.parentNode.childNodes, function(el) {
if (el.nodeName !== 'A') {
text += el.textContent.trim();
}
});
// Use execCommand(copy) as it has the widest support.
var textArea = document.createElement("textarea");
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
var el = this;
try {
document.execCommand('copy');
// Show a success icon and then revert
var original = el.innerText;
el.innerText = '\ud83c\udf70';
setTimeout(function () {
el.innerText = original;
}, 1000);
} catch (err) {
alert('Unable to update clipboard ' + err);
}
document.body.removeChild(textArea);
this.parentNode.parentNode.scrollIntoView(true);
});
});
</script>
</body>
</html>
'
protected _statusCodes => [
(int) 100 => 'Continue' ,
(int) 101 => 'Switching Protocols' ,
(int) 102 => 'Processing' ,
(int) 200 => 'OK' ,
(int) 201 => 'Created' ,
(int) 202 => 'Accepted' ,
(int) 203 => 'Non-Authoritative Information' ,
(int) 204 => 'No Content' ,
(int) 205 => 'Reset Content' ,
(int) 206 => 'Partial Content' ,
(int) 207 => 'Multi-status' ,
(int) 208 => 'Already Reported' ,
(int) 226 => 'IM used' ,
(int) 300 => 'Multiple Choices' ,
(int) 301 => 'Moved Permanently' ,
(int) 302 => 'Found' ,
(int) 303 => 'See Other' ,
(int) 304 => 'Not Modified' ,
(int) 305 => 'Use Proxy' ,
(int) 306 => '(Unused)' ,
(int) 307 => 'Temporary Redirect' ,
(int) 308 => 'Permanent Redirect' ,
(int) 400 => 'Bad Request' ,
(int) 401 => 'Unauthorized' ,
(int) 402 => 'Payment Required' ,
(int) 403 => 'Forbidden' ,
(int) 404 => 'Not Found' ,
(int) 405 => 'Method Not Allowed' ,
(int) 406 => 'Not Acceptable' ,
(int) 407 => 'Proxy Authentication Required' ,
(int) 408 => 'Request Timeout' ,
(int) 409 => 'Conflict' ,
(int) 410 => 'Gone' ,
(int) 411 => 'Length Required' ,
(int) 412 => 'Precondition Failed' ,
(int) 413 => 'Request Entity Too Large' ,
(int) 414 => 'Request-URI Too Large' ,
(int) 415 => 'Unsupported Media Type' ,
(int) 416 => 'Requested range not satisfiable' ,
(int) 417 => 'Expectation Failed' ,
(int) 418 => 'I'm a teapot' ,
(int) 421 => 'Misdirected Request' ,
(int) 422 => 'Unprocessable Entity' ,
(int) 423 => 'Locked' ,
(int) 424 => 'Failed Dependency' ,
(int) 425 => 'Unordered Collection' ,
(int) 426 => 'Upgrade Required' ,
(int) 428 => 'Precondition Required' ,
(int) 429 => 'Too Many Requests' ,
(int) 431 => 'Request Header Fields Too Large' ,
(int) 444 => 'Connection Closed Without Response' ,
(int) 451 => 'Unavailable For Legal Reasons' ,
(int) 499 => 'Client Closed Request' ,
(int) 500 => 'Internal Server Error' ,
(int) 501 => 'Not Implemented' ,
(int) 502 => 'Bad Gateway' ,
(int) 503 => 'Service Unavailable' ,
(int) 504 => 'Gateway Timeout' ,
(int) 505 => 'Unsupported Version' ,
(int) 506 => 'Variant Also Negotiates' ,
(int) 507 => 'Insufficient Storage' ,
(int) 508 => 'Loop Detected' ,
(int) 510 => 'Not Extended' ,
(int) 511 => 'Network Authentication Required' ,
(int) 599 => 'Network Connect Timeout Error' ,
]
protected _mimeTypes => [
'html' => [
'' => [maximum depth reached] ,
] ,
'json' => 'application/json' ,
'xml' => [
'' => [maximum depth reached] ,
] ,
'xhtml' => [
'' => [maximum depth reached] ,
] ,
'webp' => 'image/webp' ,
'rss' => 'application/rss+xml' ,
'ai' => 'application/postscript' ,
'bcpio' => 'application/x-bcpio' ,
'bin' => 'application/octet-stream' ,
'ccad' => 'application/clariscad' ,
'cdf' => 'application/x-netcdf' ,
'class' => 'application/octet-stream' ,
'cpio' => 'application/x-cpio' ,
'cpt' => 'application/mac-compactpro' ,
'csh' => 'application/x-csh' ,
'csv' => [
'' => [maximum depth reached] ,
] ,
'dcr' => 'application/x-director' ,
'dir' => 'application/x-director' ,
'dms' => 'application/octet-stream' ,
'doc' => 'application/msword' ,
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ,
'drw' => 'application/drafting' ,
'dvi' => 'application/x-dvi' ,
'dwg' => 'application/acad' ,
'dxf' => 'application/dxf' ,
'dxr' => 'application/x-director' ,
'eot' => 'application/vnd.ms-fontobject' ,
'eps' => 'application/postscript' ,
'exe' => 'application/octet-stream' ,
'ez' => 'application/andrew-inset' ,
'flv' => 'video/x-flv' ,
'gtar' => 'application/x-gtar' ,
'gz' => 'application/x-gzip' ,
'bz2' => 'application/x-bzip' ,
'7z' => 'application/x-7z-compressed' ,
'haljson' => [
'' => [maximum depth reached] ,
] ,
'halxml' => [
'' => [maximum depth reached] ,
] ,
'hdf' => 'application/x-hdf' ,
'hqx' => 'application/mac-binhex40' ,
'ico' => 'image/x-icon' ,
'ips' => 'application/x-ipscript' ,
'ipx' => 'application/x-ipix' ,
'js' => 'application/javascript' ,
'jsonapi' => 'application/vnd.api+json' ,
'latex' => 'application/x-latex' ,
'jsonld' => 'application/ld+json' ,
'lha' => 'application/octet-stream' ,
'lsp' => 'application/x-lisp' ,
'lzh' => 'application/octet-stream' ,
'man' => 'application/x-troff-man' ,
'me' => 'application/x-troff-me' ,
'mif' => 'application/vnd.mif' ,
'ms' => 'application/x-troff-ms' ,
'nc' => 'application/x-netcdf' ,
'oda' => 'application/oda' ,
'otf' => 'font/otf' ,
'pdf' => 'application/pdf' ,
'pgn' => 'application/x-chess-pgn' ,
'pot' => 'application/vnd.ms-powerpoint' ,
'pps' => 'application/vnd.ms-powerpoint' ,
'ppt' => 'application/vnd.ms-powerpoint' ,
'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation' ,
'ppz' => 'application/vnd.ms-powerpoint' ,
'pre' => 'application/x-freelance' ,
'prt' => 'application/pro_eng' ,
'ps' => 'application/postscript' ,
'roff' => 'application/x-troff' ,
'scm' => 'application/x-lotusscreencam' ,
'set' => 'application/set' ,
'sh' => 'application/x-sh' ,
'shar' => 'application/x-shar' ,
'sit' => 'application/x-stuffit' ,
'skd' => 'application/x-koan' ,
'skm' => 'application/x-koan' ,
'skp' => 'application/x-koan' ,
'skt' => 'application/x-koan' ,
'smi' => 'application/smil' ,
'smil' => 'application/smil' ,
'sol' => 'application/solids' ,
'spl' => 'application/x-futuresplash' ,
'src' => 'application/x-wais-source' ,
'step' => 'application/STEP' ,
'stl' => 'application/SLA' ,
'stp' => 'application/STEP' ,
'sv4cpio' => 'application/x-sv4cpio' ,
'sv4crc' => 'application/x-sv4crc' ,
'svg' => 'image/svg+xml' ,
'svgz' => 'image/svg+xml' ,
'swf' => 'application/x-shockwave-flash' ,
't' => 'application/x-troff' ,
'tar' => 'application/x-tar' ,
'tcl' => 'application/x-tcl' ,
'tex' => 'application/x-tex' ,
'texi' => 'application/x-texinfo' ,
'texinfo' => 'application/x-texinfo' ,
'tr' => 'application/x-troff' ,
'tsp' => 'application/dsptype' ,
'ttc' => 'font/ttf' ,
'ttf' => 'font/ttf' ,
'unv' => 'application/i-deas' ,
'ustar' => 'application/x-ustar' ,
'vcd' => 'application/x-cdlink' ,
'vda' => 'application/vda' ,
'xlc' => 'application/vnd.ms-excel' ,
'xll' => 'application/vnd.ms-excel' ,
'xlm' => 'application/vnd.ms-excel' ,
'xls' => 'application/vnd.ms-excel' ,
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ,
'xlw' => 'application/vnd.ms-excel' ,
'zip' => 'application/zip' ,
'aif' => 'audio/x-aiff' ,
'aifc' => 'audio/x-aiff' ,
'aiff' => 'audio/x-aiff' ,
'au' => 'audio/basic' ,
'kar' => 'audio/midi' ,
'mid' => 'audio/midi' ,
'midi' => 'audio/midi' ,
'mp2' => 'audio/mpeg' ,
'mp3' => 'audio/mpeg' ,
'mpga' => 'audio/mpeg' ,
'ogg' => 'audio/ogg' ,
'oga' => 'audio/ogg' ,
'spx' => 'audio/ogg' ,
'ra' => 'audio/x-realaudio' ,
'ram' => 'audio/x-pn-realaudio' ,
'rm' => 'audio/x-pn-realaudio' ,
'rpm' => 'audio/x-pn-realaudio-plugin' ,
'snd' => 'audio/basic' ,
'tsi' => 'audio/TSP-audio' ,
'wav' => 'audio/x-wav' ,
'aac' => 'audio/aac' ,
'asc' => 'text/plain' ,
'c' => 'text/plain' ,
'cc' => 'text/plain' ,
'css' => 'text/css' ,
'etx' => 'text/x-setext' ,
'f' => 'text/plain' ,
'f90' => 'text/plain' ,
'h' => 'text/plain' ,
'hh' => 'text/plain' ,
'htm' => [
'' => [maximum depth reached] ,
] ,
'ics' => 'text/calendar' ,
'm' => 'text/plain' ,
'rtf' => 'text/rtf' ,
'rtx' => 'text/richtext' ,
'sgm' => 'text/sgml' ,
'sgml' => 'text/sgml' ,
'tsv' => 'text/tab-separated-values' ,
'tpl' => 'text/template' ,
'txt' => 'text/plain' ,
'text' => 'text/plain' ,
'avi' => 'video/x-msvideo' ,
'fli' => 'video/x-fli' ,
'mov' => 'video/quicktime' ,
'movie' => 'video/x-sgi-movie' ,
'mpe' => 'video/mpeg' ,
'mpeg' => 'video/mpeg' ,
'mpg' => 'video/mpeg' ,
'qt' => 'video/quicktime' ,
'viv' => 'video/vnd.vivo' ,
'vivo' => 'video/vnd.vivo' ,
'ogv' => 'video/ogg' ,
'webm' => 'video/webm' ,
'mp4' => 'video/mp4' ,
'm4v' => 'video/mp4' ,
'f4v' => 'video/mp4' ,
'f4p' => 'video/mp4' ,
'm4a' => 'audio/mp4' ,
'f4a' => 'audio/mp4' ,
'f4b' => 'audio/mp4' ,
'gif' => 'image/gif' ,
'ief' => 'image/ief' ,
'jpg' => 'image/jpeg' ,
'jpeg' => 'image/jpeg' ,
'jpe' => 'image/jpeg' ,
'pbm' => 'image/x-portable-bitmap' ,
'pgm' => 'image/x-portable-graymap' ,
'png' => 'image/png' ,
'pnm' => 'image/x-portable-anymap' ,
'ppm' => 'image/x-portable-pixmap' ,
'ras' => 'image/cmu-raster' ,
'rgb' => 'image/x-rgb' ,
'tif' => 'image/tiff' ,
'tiff' => 'image/tiff' ,
'xbm' => 'image/x-xbitmap' ,
'xpm' => 'image/x-xpixmap' ,
'xwd' => 'image/x-xwindowdump' ,
'psd' => [
'' => [maximum depth reached] ,
] ,
'ice' => 'x-conference/x-cooltalk' ,
'iges' => 'model/iges' ,
'igs' => 'model/iges' ,
'mesh' => 'model/mesh' ,
'msh' => 'model/mesh' ,
'silo' => 'model/mesh' ,
'vrml' => 'model/vrml' ,
'wrl' => 'model/vrml' ,
'mime' => 'www/mime' ,
'pdb' => 'chemical/x-pdb' ,
'xyz' => 'chemical/x-pdb' ,
'javascript' => 'application/javascript' ,
'form' => 'application/x-www-form-urlencoded' ,
'file' => 'multipart/form-data' ,
'xhtml-mobile' => 'application/vnd.wap.xhtml+xml' ,
'atom' => 'application/atom+xml' ,
'amf' => 'application/x-amf' ,
'wap' => [
'' => [maximum depth reached] ,
] ,
'wml' => 'text/vnd.wap.wml' ,
'wmlscript' => 'text/vnd.wap.wmlscript' ,
'wbmp' => 'image/vnd.wap.wbmp' ,
'woff' => 'application/x-font-woff' ,
'appcache' => 'text/cache-manifest' ,
'manifest' => 'text/cache-manifest' ,
'htc' => 'text/x-component' ,
'rdf' => 'application/xml' ,
'crx' => 'application/x-chrome-extension' ,
'oex' => 'application/x-opera-extension' ,
'xpi' => 'application/x-xpinstall' ,
'safariextz' => 'application/octet-stream' ,
'webapp' => 'application/x-web-app-manifest+json' ,
'vcf' => 'text/x-vcard' ,
'vtt' => 'text/vtt' ,
'mkv' => 'video/x-matroska' ,
'pkpass' => 'application/vnd.apple.pkpass' ,
'ajax' => 'text/html' ,
'bmp' => 'image/bmp' ,
]
protected _status => (int) 500
protected _file => null
protected _fileRange => [
]
protected _charset => 'UTF-8'
protected _cacheDirectives => [
]
protected _cookies => object( Cake\Http\Cookie\CookieCollection ) id: 1 {}
protected _reasonPhrase => 'Internal Server Error'
protected _streamMode => 'wb+'
protected _streamTarget => 'php://memory'
protected headers => [
'Content-Type' => [
'' => [maximum depth reached] ,
] ,
]
protected headerNames => [
'content-type' => 'Content-Type' ,
]
private protocol => '1.1'
private stream => object( Laminas\Diactoros\Stream ) id: 2 {
}
}
$reasonPhrase = 'Internal Server Error'
header - [internal], line ??
Cake\Http\ResponseEmitter::emitStatusLine() - CORE/src/Http/ResponseEmitter.php, line 168
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 74
Cake\Error\ErrorHandler::_sendResponse() - CORE/src/Error/ErrorHandler.php, line 214
Cake\Error\ErrorHandler::_displayException() - CORE/src/Error/ErrorHandler.php, line 139
Cake\Error\BaseErrorHandler::handleException() - CORE/src/Error/BaseErrorHandler.php, line 221
[main] - [internal], line ?? Warning (2) : Cannot modify header information - headers already sent by (output started at /var/www/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php , line 197 ]Code Context foreach ( $values as $value ) {
header ( sprintf (
'%s: %s' ,
$response = object( Cake\Http\Response ) id: 0 {
'status' => (int) 500
'contentType' => 'text/html'
'headers' => [
'Content-Type' => [
(int) 0 => 'text/html; charset=UTF-8' ,
] ,
]
'file' => null
'fileRange' => [
]
'cookies' => object( Cake\Http\Cookie\CookieCollection ) id: 1 {
protected cookies => [
'' => [maximum depth reached] ,
]
}
'cacheDirectives' => [
]
'body' => '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Error: Class 'App\Middleware\SingleSessionMiddleware' not found </title>
<link href="/favicon.ico" type="image/x-icon" rel="icon"/><link href="/favicon.ico" type="image/x-icon" rel="shortcut icon"/> <style>
* {
box-sizing: border-box;
}
body {
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
color: #404041;
background: #F5F7FA;
font-size: 14px;
letter-spacing: .01em;
line-height: 1.6;
padding: 0 0 40px;
margin: 0;
height: 100%;
}
header {
flex: 1;
background-color: #D33C47;
color: #ffffff;
padding: 10px;
}
.header-title {
display: flex;
align-items: center;
font-size: 30px;
margin: 0;
}
.header-title a {
font-size: 18px;
cursor: pointer;
margin-left: 10px;
user-select: none;
}
.header-title code {
margin: 0 10px;
}
.header-description {
display: block;
font-size: 18px;
line-height: 1.2;
margin-bottom: 16px;
}
.header-type {
display: block;
font-size: 16px;
}
.header-help a {
color: #fff;
}
.error-content {
display: flex;
}
.col-left,
.col-right {
overflow-y: auto;
padding: 10px;
}
.col-left {
background: #ececec;
flex: 0 0 30%;
}
.col-right {
flex: 1;
}
.toggle-vendor-frames {
color: #404041;
display: block;
padding: 5px;
margin-bottom: 10px;
text-align: center;
text-decoration: none;
}
.toggle-vendor-frames:hover,
.toggle-vendor-frames:active {
background: #e5e5e5;
}
.code-dump,
pre {
background: #fff;
border-radius: 4px;
padding: 5px;
white-space: pre-wrap;
margin: 0;
}
.error,
.error-subheading {
font-size: 18px;
margin-top: 0;
padding: 20px 16px;
}
.error-subheading {
color: #fff;
background-color: #319795;
}
.error-subheading strong {
color: #fff;
background-color: #4fd1c5;
border-radius: 9999px;
padding: 4px 12px;
margin-right: 8px;
}
.error {
color: #fff;
background: #2779BD;
}
.error strong {
color: #fff;
background-color: #6CB2EB;
border-radius: 9999px;
padding: 4px 12px;
margin-right: 8px;
}
.stack-trace {
list-style: none;
margin: 0;
padding: 0;
}
.stack-frame {
background: #e5e5e5;
padding: 10px;
margin-bottom: 10px;
}
.stack-frame:last-child {
border-bottom: none;
margin-bottom: 0;
}
.stack-frame a {
display: block;
color: #212121;
text-decoration: none;
}
.stack-frame.active {
background: #F5F7FA;
}
.stack-frame a:hover {
text-decoration: underline;
}
.stack-frame-header {
display: flex;
align-items: center;
}
.stack-frame-file a {
color: #212121;
}
.stack-frame-args {
flex: 0 0 150px;
display: block;
padding: 8px 14px;
text-decoration: none;
background-color: #606c76;
border-radius: 4px;
cursor: pointer;
color: #fff;
text-align: center;
margin-bottom: 10px;
}
.stack-frame-args:hover {
background-color: #D33C47;
}
.stack-frame-file {
flex: 1;
word-break:break-all;
margin-right: 10px;
font-size: 16px;
}
.stack-file,
.stack-function {
display: block;
}
.stack-frame-file,
.stack-file {
font-family: consolas, monospace;
}
.stack-function {
font-weight: bold;
}
.stack-file {
font-size: 0.9em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
direction: rtl;
}
.stack-details {
background: #ececec;
border-radius: 4px;
padding: 10px;
margin-bottom: 18px;
}
.code-excerpt {
width: 100%;
margin: 10px 0 0 0;
background: #fefefe;
}
.code-highlight {
display: block;
background: #fff59d;
}
.excerpt-line {
padding: 0;
}
.excerpt-number {
background: #f6f6f6;
width: 50px;
text-align: right;
color: #666;
border-right: 1px solid #ddd;
padding: 2px;
}
.excerpt-number:after {
content: attr(data-number);
}
.cake-debug {
margin-top: 10px;
}
table {
text-align: left;
}
th, td {
padding: 4px;
}
th {
border-bottom: 1px solid #ccc;
}
</style>
</head>
<body>
<header>
<h1 class="header-title">
<span>Class 'App\Middleware\SingleSessionMiddleware' not found</span>
<a>📋</a>
</h1>
<span class="header-type">Error</span>
</header>
<div class="error-content">
<div class="col-left">
<a href="#" class="toggle-link toggle-vendor-frames">Toggle Vendor Stack Frames</a>
<ul class="stack-trace">
<li class="stack-frame app-frame active">
<a href="#" data-target="stack-frame-0">
<span class="stack-file">
APP/Application.php:91 </span>
</a>
</li>
<li class="stack-frame vendor-frame">
<a href="#" data-target="stack-frame-1">
<span class="stack-function">App\Application->middleware</span>
<span class="stack-file">
CORE/src/Http/Server.php:83 </span>
</a>
</li>
<li class="stack-frame vendor-frame">
<a href="#" data-target="stack-frame-2">
<span class="stack-function">Cake\Http\Server->run</span>
<span class="stack-file">
ROOT/webroot/index.php:40 </span>
</a>
</li>
</ul>
</div>
<div class="col-right">
<div id="stack-frame-0" style="display:block;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/src/Application.php&line=91">APP/Application.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-0">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="87"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $middlewareQueue</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="88"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// Catch any exceptions in the lower layers,</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="89"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// and make an error page/response</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="90"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">ErrorHandlerMiddleware</span><span style="color: #007700">(</span><span style="color: #0000BB">Configure</span><span style="color: #007700">::</span><span style="color: #0000BB">read</span><span style="color: #007700">(</span><span style="color: #DD0000">'Error'</span><span style="color: #007700">)))</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="91"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">SingleSessionMiddleware</span><span style="color: #007700">()) </span><span style="color: #FF8000">// your custom Middleware For Single Session at a time (concurrent login not allowed)</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="92"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="93"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="94"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #FF8000">// Handle plugin/theme assets like CakePHP normally does.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="95"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">-></span><span style="color: #0000BB">add</span><span style="color: #007700">(new </span><span style="color: #0000BB">AssetMiddleware</span><span style="color: #007700">([</span></span></code></td>
</tr>
</table>
<div id="stack-args-0" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
</div>
</div>
<div id="stack-frame-1" style="display:none;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/vendor/cakephp/cakephp/src/Http/Server.php&line=83">CORE/src/Http/Server.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-1">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="79"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $this</span><span style="color: #007700">-></span><span style="color: #0000BB">bootstrap</span><span style="color: #007700">();</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="80"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="81"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $request </span><span style="color: #007700">= </span><span style="color: #0000BB">$request </span><span style="color: #007700">?: </span><span style="color: #0000BB">ServerRequestFactory</span><span style="color: #007700">::</span><span style="color: #0000BB">fromGlobals</span><span style="color: #007700">();</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="82"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="83"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB"> $middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app</span><span style="color: #007700">-></span><span style="color: #0000BB">middleware</span><span style="color: #007700">(</span><span style="color: #0000BB">$middlewareQueue </span><span style="color: #007700">?? new </span><span style="color: #0000BB">MiddlewareQueue</span><span style="color: #007700">());</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="84"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">if (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app </span><span style="color: #007700">instanceof </span><span style="color: #0000BB">PluginApplicationInterface</span><span style="color: #007700">) {</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="85"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> $middleware </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">app</span><span style="color: #007700">-></span><span style="color: #0000BB">pluginMiddleware</span><span style="color: #007700">(</span><span style="color: #0000BB">$middleware</span><span style="color: #007700">);</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="86"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"> </span><span style="color: #007700">}</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="87"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
</table>
<div id="stack-args-1" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
<div class="cake-debug"><div class="cake-dbg"><span class="cake-dbg-object" id="cake-db-object-68c82340d96f13.79904310-0"><span class="cake-dbg-punct">object(</span><span class="cake-dbg-class">Cake\Http\MiddlewareQueue</span><span class="cake-dbg-punct">) id:</span><span class="cake-dbg-number">0</span><span class="cake-dbg-punct"> {</span><samp class="cake-dbg-object-props">
<span class="cake-dbg-prop"><span class="cake-dbg-visibility">protected</span> <span class="cake-dbg-property">position</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-visibility">(int)</span> <span class="cake-dbg-number">0</span></span>
<span class="cake-dbg-prop"><span class="cake-dbg-visibility">protected</span> <span class="cake-dbg-property">queue</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-array"><span class="cake-dbg-punct">[</span><samp class="cake-dbg-array-items">
<span class="cake-dbg-array-item"><span class="cake-dbg-visibility">(int)</span> <span class="cake-dbg-number">0</span><span class="cake-dbg-punct"> => </span><span class="cake-dbg-object" id="cake-db-object-68c82340d96f13.79904310-1"><span class="cake-dbg-punct">object(</span><span class="cake-dbg-class">Cake\Error\Middleware\ErrorHandlerMiddleware</span><span class="cake-dbg-punct">) id:</span><span class="cake-dbg-number">1</span><span class="cake-dbg-punct"> {</span><samp class="cake-dbg-object-props"></samp>
<span class="cake-dbg-punct">}</span></span><span class="cake-dbg-punct">,</span></span></samp>
<span class="cake-dbg-punct">]</span></span></span></samp>
<span class="cake-dbg-punct">}</span></span></div></div>
</div>
</div>
<div id="stack-frame-2" style="display:none;" class="stack-details">
<div class="stack-frame-header">
<span class="stack-frame-file">
<a href="phpstorm://open?file=/var/www/html/webroot/index.php&line=40">ROOT/webroot/index.php</a> </span>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-2">Toggle Arguments</a>
</div>
<table class="code-excerpt" cellspacing="0" cellpadding="0">
<tr>
<td class="excerpt-number" data-number="36"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">// Bind your application to the server.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="37"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB">$server </span><span style="color: #007700">= new </span><span style="color: #0000BB">Server</span><span style="color: #007700">(new </span><span style="color: #0000BB">Application</span><span style="color: #007700">(</span><span style="color: #0000BB">dirname</span><span style="color: #007700">(</span><span style="color: #0000BB">__DIR__</span><span style="color: #007700">) . </span><span style="color: #DD0000">'/config'</span><span style="color: #007700">));</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="38"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="39"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span><span style="color: #FF8000">// Run the request/response through the application and emit the response.</span></span></code></td>
</tr>
<tr>
<td class="excerpt-number" data-number="40"></td>
<td class="excerpt-line"><span class="code-highlight"><code><span style="color: #000000"><span style="color: #0000BB">$server</span><span style="color: #007700">-></span><span style="color: #0000BB">emit</span><span style="color: #007700">(</span><span style="color: #0000BB">$server</span><span style="color: #007700">-></span><span style="color: #0000BB">run</span><span style="color: #007700">());</span></span></code></span></td>
</tr>
<tr>
<td class="excerpt-number" data-number="41"></td>
<td class="excerpt-line"><code><span style="color: #000000"><span style="color: #0000BB"></span></span></code></td>
</tr>
</table>
<div id="stack-args-2" class="cake-debug" style="display: none;">
<h4>Arguments</h4>
<div class="cake-debug">No arguments</div>
</div>
</div>
<div class="error-suggestion">
<strong>Error in: </strong>
ROOT/src/Application.php, line 91 </div>
<p class="customize">
If you want to customize this error message, create
<em>templates/Error/error500.php</em>
</p>
</div>
</div>
<script type="text/javascript">
function bindEvent(selector, eventName, listener) {
var els = document.querySelectorAll(selector);
for (var i = 0, len = els.length; i < len; i++) {
els[i].addEventListener(eventName, listener, false);
}
}
function toggleElement(el) {
if (el.style.display === 'none') {
el.style.display = 'block';
} else {
el.style.display = 'none';
}
}
function each(els, cb) {
var i, len;
for (i = 0, len = els.length; i < len; i++) {
cb(els[i], i);
}
}
window.addEventListener('load', function() {
bindEvent('.stack-frame-args', 'click', function(event) {
var target = this.dataset['target'];
var el = document.getElementById(target);
toggleElement(el);
event.preventDefault();
});
var details = document.querySelectorAll('.stack-details');
var frames = document.querySelectorAll('.stack-frame');
bindEvent('.stack-frame a', 'click', function(event) {
each(frames, function(el) {
el.classList.remove('active');
});
this.parentNode.classList.add('active');
each(details, function(el) {
el.style.display = 'none';
});
var target = document.getElementById(this.dataset['target']);
toggleElement(target);
event.preventDefault();
});
bindEvent('.toggle-vendor-frames', 'click', function(event) {
each(frames, function(el) {
if (el.classList.contains('vendor-frame')) {
toggleElement(el);
}
});
event.preventDefault();
});
bindEvent('.header-title a', 'click', function(event) {
event.preventDefault();
var text = '';
each(this.parentNode.childNodes, function(el) {
if (el.nodeName !== 'A') {
text += el.textContent.trim();
}
});
// Use execCommand(copy) as it has the widest support.
var textArea = document.createElement("textarea");
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
var el = this;
try {
document.execCommand('copy');
// Show a success icon and then revert
var original = el.innerText;
el.innerText = '\ud83c\udf70';
setTimeout(function () {
el.innerText = original;
}, 1000);
} catch (err) {
alert('Unable to update clipboard ' + err);
}
document.body.removeChild(textArea);
this.parentNode.parentNode.scrollIntoView(true);
});
});
</script>
</body>
</html>
'
protected _statusCodes => [
(int) 100 => 'Continue' ,
(int) 101 => 'Switching Protocols' ,
(int) 102 => 'Processing' ,
(int) 200 => 'OK' ,
(int) 201 => 'Created' ,
(int) 202 => 'Accepted' ,
(int) 203 => 'Non-Authoritative Information' ,
(int) 204 => 'No Content' ,
(int) 205 => 'Reset Content' ,
(int) 206 => 'Partial Content' ,
(int) 207 => 'Multi-status' ,
(int) 208 => 'Already Reported' ,
(int) 226 => 'IM used' ,
(int) 300 => 'Multiple Choices' ,
(int) 301 => 'Moved Permanently' ,
(int) 302 => 'Found' ,
(int) 303 => 'See Other' ,
(int) 304 => 'Not Modified' ,
(int) 305 => 'Use Proxy' ,
(int) 306 => '(Unused)' ,
(int) 307 => 'Temporary Redirect' ,
(int) 308 => 'Permanent Redirect' ,
(int) 400 => 'Bad Request' ,
(int) 401 => 'Unauthorized' ,
(int) 402 => 'Payment Required' ,
(int) 403 => 'Forbidden' ,
(int) 404 => 'Not Found' ,
(int) 405 => 'Method Not Allowed' ,
(int) 406 => 'Not Acceptable' ,
(int) 407 => 'Proxy Authentication Required' ,
(int) 408 => 'Request Timeout' ,
(int) 409 => 'Conflict' ,
(int) 410 => 'Gone' ,
(int) 411 => 'Length Required' ,
(int) 412 => 'Precondition Failed' ,
(int) 413 => 'Request Entity Too Large' ,
(int) 414 => 'Request-URI Too Large' ,
(int) 415 => 'Unsupported Media Type' ,
(int) 416 => 'Requested range not satisfiable' ,
(int) 417 => 'Expectation Failed' ,
(int) 418 => 'I'm a teapot' ,
(int) 421 => 'Misdirected Request' ,
(int) 422 => 'Unprocessable Entity' ,
(int) 423 => 'Locked' ,
(int) 424 => 'Failed Dependency' ,
(int) 425 => 'Unordered Collection' ,
(int) 426 => 'Upgrade Required' ,
(int) 428 => 'Precondition Required' ,
(int) 429 => 'Too Many Requests' ,
(int) 431 => 'Request Header Fields Too Large' ,
(int) 444 => 'Connection Closed Without Response' ,
(int) 451 => 'Unavailable For Legal Reasons' ,
(int) 499 => 'Client Closed Request' ,
(int) 500 => 'Internal Server Error' ,
(int) 501 => 'Not Implemented' ,
(int) 502 => 'Bad Gateway' ,
(int) 503 => 'Service Unavailable' ,
(int) 504 => 'Gateway Timeout' ,
(int) 505 => 'Unsupported Version' ,
(int) 506 => 'Variant Also Negotiates' ,
(int) 507 => 'Insufficient Storage' ,
(int) 508 => 'Loop Detected' ,
(int) 510 => 'Not Extended' ,
(int) 511 => 'Network Authentication Required' ,
(int) 599 => 'Network Connect Timeout Error' ,
]
protected _mimeTypes => [
'html' => [
'' => [maximum depth reached] ,
] ,
'json' => 'application/json' ,
'xml' => [
'' => [maximum depth reached] ,
] ,
'xhtml' => [
'' => [maximum depth reached] ,
] ,
'webp' => 'image/webp' ,
'rss' => 'application/rss+xml' ,
'ai' => 'application/postscript' ,
'bcpio' => 'application/x-bcpio' ,
'bin' => 'application/octet-stream' ,
'ccad' => 'application/clariscad' ,
'cdf' => 'application/x-netcdf' ,
'class' => 'application/octet-stream' ,
'cpio' => 'application/x-cpio' ,
'cpt' => 'application/mac-compactpro' ,
'csh' => 'application/x-csh' ,
'csv' => [
'' => [maximum depth reached] ,
] ,
'dcr' => 'application/x-director' ,
'dir' => 'application/x-director' ,
'dms' => 'application/octet-stream' ,
'doc' => 'application/msword' ,
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ,
'drw' => 'application/drafting' ,
'dvi' => 'application/x-dvi' ,
'dwg' => 'application/acad' ,
'dxf' => 'application/dxf' ,
'dxr' => 'application/x-director' ,
'eot' => 'application/vnd.ms-fontobject' ,
'eps' => 'application/postscript' ,
'exe' => 'application/octet-stream' ,
'ez' => 'application/andrew-inset' ,
'flv' => 'video/x-flv' ,
'gtar' => 'application/x-gtar' ,
'gz' => 'application/x-gzip' ,
'bz2' => 'application/x-bzip' ,
'7z' => 'application/x-7z-compressed' ,
'haljson' => [
'' => [maximum depth reached] ,
] ,
'halxml' => [
'' => [maximum depth reached] ,
] ,
'hdf' => 'application/x-hdf' ,
'hqx' => 'application/mac-binhex40' ,
'ico' => 'image/x-icon' ,
'ips' => 'application/x-ipscript' ,
'ipx' => 'application/x-ipix' ,
'js' => 'application/javascript' ,
'jsonapi' => 'application/vnd.api+json' ,
'latex' => 'application/x-latex' ,
'jsonld' => 'application/ld+json' ,
'lha' => 'application/octet-stream' ,
'lsp' => 'application/x-lisp' ,
'lzh' => 'application/octet-stream' ,
'man' => 'application/x-troff-man' ,
'me' => 'application/x-troff-me' ,
'mif' => 'application/vnd.mif' ,
'ms' => 'application/x-troff-ms' ,
'nc' => 'application/x-netcdf' ,
'oda' => 'application/oda' ,
'otf' => 'font/otf' ,
'pdf' => 'application/pdf' ,
'pgn' => 'application/x-chess-pgn' ,
'pot' => 'application/vnd.ms-powerpoint' ,
'pps' => 'application/vnd.ms-powerpoint' ,
'ppt' => 'application/vnd.ms-powerpoint' ,
'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation' ,
'ppz' => 'application/vnd.ms-powerpoint' ,
'pre' => 'application/x-freelance' ,
'prt' => 'application/pro_eng' ,
'ps' => 'application/postscript' ,
'roff' => 'application/x-troff' ,
'scm' => 'application/x-lotusscreencam' ,
'set' => 'application/set' ,
'sh' => 'application/x-sh' ,
'shar' => 'application/x-shar' ,
'sit' => 'application/x-stuffit' ,
'skd' => 'application/x-koan' ,
'skm' => 'application/x-koan' ,
'skp' => 'application/x-koan' ,
'skt' => 'application/x-koan' ,
'smi' => 'application/smil' ,
'smil' => 'application/smil' ,
'sol' => 'application/solids' ,
'spl' => 'application/x-futuresplash' ,
'src' => 'application/x-wais-source' ,
'step' => 'application/STEP' ,
'stl' => 'application/SLA' ,
'stp' => 'application/STEP' ,
'sv4cpio' => 'application/x-sv4cpio' ,
'sv4crc' => 'application/x-sv4crc' ,
'svg' => 'image/svg+xml' ,
'svgz' => 'image/svg+xml' ,
'swf' => 'application/x-shockwave-flash' ,
't' => 'application/x-troff' ,
'tar' => 'application/x-tar' ,
'tcl' => 'application/x-tcl' ,
'tex' => 'application/x-tex' ,
'texi' => 'application/x-texinfo' ,
'texinfo' => 'application/x-texinfo' ,
'tr' => 'application/x-troff' ,
'tsp' => 'application/dsptype' ,
'ttc' => 'font/ttf' ,
'ttf' => 'font/ttf' ,
'unv' => 'application/i-deas' ,
'ustar' => 'application/x-ustar' ,
'vcd' => 'application/x-cdlink' ,
'vda' => 'application/vda' ,
'xlc' => 'application/vnd.ms-excel' ,
'xll' => 'application/vnd.ms-excel' ,
'xlm' => 'application/vnd.ms-excel' ,
'xls' => 'application/vnd.ms-excel' ,
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ,
'xlw' => 'application/vnd.ms-excel' ,
'zip' => 'application/zip' ,
'aif' => 'audio/x-aiff' ,
'aifc' => 'audio/x-aiff' ,
'aiff' => 'audio/x-aiff' ,
'au' => 'audio/basic' ,
'kar' => 'audio/midi' ,
'mid' => 'audio/midi' ,
'midi' => 'audio/midi' ,
'mp2' => 'audio/mpeg' ,
'mp3' => 'audio/mpeg' ,
'mpga' => 'audio/mpeg' ,
'ogg' => 'audio/ogg' ,
'oga' => 'audio/ogg' ,
'spx' => 'audio/ogg' ,
'ra' => 'audio/x-realaudio' ,
'ram' => 'audio/x-pn-realaudio' ,
'rm' => 'audio/x-pn-realaudio' ,
'rpm' => 'audio/x-pn-realaudio-plugin' ,
'snd' => 'audio/basic' ,
'tsi' => 'audio/TSP-audio' ,
'wav' => 'audio/x-wav' ,
'aac' => 'audio/aac' ,
'asc' => 'text/plain' ,
'c' => 'text/plain' ,
'cc' => 'text/plain' ,
'css' => 'text/css' ,
'etx' => 'text/x-setext' ,
'f' => 'text/plain' ,
'f90' => 'text/plain' ,
'h' => 'text/plain' ,
'hh' => 'text/plain' ,
'htm' => [
'' => [maximum depth reached] ,
] ,
'ics' => 'text/calendar' ,
'm' => 'text/plain' ,
'rtf' => 'text/rtf' ,
'rtx' => 'text/richtext' ,
'sgm' => 'text/sgml' ,
'sgml' => 'text/sgml' ,
'tsv' => 'text/tab-separated-values' ,
'tpl' => 'text/template' ,
'txt' => 'text/plain' ,
'text' => 'text/plain' ,
'avi' => 'video/x-msvideo' ,
'fli' => 'video/x-fli' ,
'mov' => 'video/quicktime' ,
'movie' => 'video/x-sgi-movie' ,
'mpe' => 'video/mpeg' ,
'mpeg' => 'video/mpeg' ,
'mpg' => 'video/mpeg' ,
'qt' => 'video/quicktime' ,
'viv' => 'video/vnd.vivo' ,
'vivo' => 'video/vnd.vivo' ,
'ogv' => 'video/ogg' ,
'webm' => 'video/webm' ,
'mp4' => 'video/mp4' ,
'm4v' => 'video/mp4' ,
'f4v' => 'video/mp4' ,
'f4p' => 'video/mp4' ,
'm4a' => 'audio/mp4' ,
'f4a' => 'audio/mp4' ,
'f4b' => 'audio/mp4' ,
'gif' => 'image/gif' ,
'ief' => 'image/ief' ,
'jpg' => 'image/jpeg' ,
'jpeg' => 'image/jpeg' ,
'jpe' => 'image/jpeg' ,
'pbm' => 'image/x-portable-bitmap' ,
'pgm' => 'image/x-portable-graymap' ,
'png' => 'image/png' ,
'pnm' => 'image/x-portable-anymap' ,
'ppm' => 'image/x-portable-pixmap' ,
'ras' => 'image/cmu-raster' ,
'rgb' => 'image/x-rgb' ,
'tif' => 'image/tiff' ,
'tiff' => 'image/tiff' ,
'xbm' => 'image/x-xbitmap' ,
'xpm' => 'image/x-xpixmap' ,
'xwd' => 'image/x-xwindowdump' ,
'psd' => [
'' => [maximum depth reached] ,
] ,
'ice' => 'x-conference/x-cooltalk' ,
'iges' => 'model/iges' ,
'igs' => 'model/iges' ,
'mesh' => 'model/mesh' ,
'msh' => 'model/mesh' ,
'silo' => 'model/mesh' ,
'vrml' => 'model/vrml' ,
'wrl' => 'model/vrml' ,
'mime' => 'www/mime' ,
'pdb' => 'chemical/x-pdb' ,
'xyz' => 'chemical/x-pdb' ,
'javascript' => 'application/javascript' ,
'form' => 'application/x-www-form-urlencoded' ,
'file' => 'multipart/form-data' ,
'xhtml-mobile' => 'application/vnd.wap.xhtml+xml' ,
'atom' => 'application/atom+xml' ,
'amf' => 'application/x-amf' ,
'wap' => [
'' => [maximum depth reached] ,
] ,
'wml' => 'text/vnd.wap.wml' ,
'wmlscript' => 'text/vnd.wap.wmlscript' ,
'wbmp' => 'image/vnd.wap.wbmp' ,
'woff' => 'application/x-font-woff' ,
'appcache' => 'text/cache-manifest' ,
'manifest' => 'text/cache-manifest' ,
'htc' => 'text/x-component' ,
'rdf' => 'application/xml' ,
'crx' => 'application/x-chrome-extension' ,
'oex' => 'application/x-opera-extension' ,
'xpi' => 'application/x-xpinstall' ,
'safariextz' => 'application/octet-stream' ,
'webapp' => 'application/x-web-app-manifest+json' ,
'vcf' => 'text/x-vcard' ,
'vtt' => 'text/vtt' ,
'mkv' => 'video/x-matroska' ,
'pkpass' => 'application/vnd.apple.pkpass' ,
'ajax' => 'text/html' ,
'bmp' => 'image/bmp' ,
]
protected _status => (int) 500
protected _file => null
protected _fileRange => [
]
protected _charset => 'UTF-8'
protected _cacheDirectives => [
]
protected _cookies => object( Cake\Http\Cookie\CookieCollection ) id: 1 {}
protected _reasonPhrase => 'Internal Server Error'
protected _streamMode => 'wb+'
protected _streamTarget => 'php://memory'
protected headers => [
'Content-Type' => [
'' => [maximum depth reached] ,
] ,
]
protected headerNames => [
'content-type' => 'Content-Type' ,
]
private protocol => '1.1'
private stream => object( Laminas\Diactoros\Stream ) id: 2 {
}
}
$cookies = [
]
$values = [
(int) 0 => 'text/html; charset=UTF-8' ,
]
$name = 'Content-Type'
$first = true
$value = 'text/html; charset=UTF-8'
header - [internal], line ??
Cake\Http\ResponseEmitter::emitHeaders() - CORE/src/Http/ResponseEmitter.php, line 197
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 75
Cake\Error\ErrorHandler::_sendResponse() - CORE/src/Error/ErrorHandler.php, line 214
Cake\Error\ErrorHandler::_displayException() - CORE/src/Error/ErrorHandler.php, line 139
Cake\Error\BaseErrorHandler::handleException() - CORE/src/Error/BaseErrorHandler.php, line 221
[main] - [internal], line ??
Error: Class 'App\Middleware\SingleSessionMiddleware' not found
$middlewareQueue
// Catch any exceptions in the lower layers,
// and make an error page/response
-> add (new ErrorHandlerMiddleware ( Configure :: read ( 'Error' )))
-> add (new SingleSessionMiddleware ()) // your custom Middleware For Single Session at a time (concurrent login not allowed)
// Handle plugin/theme assets like CakePHP normally does.
-> add (new AssetMiddleware ([
Arguments
$this -> bootstrap ();
$request = $request ?: ServerRequestFactory :: fromGlobals ();
$middleware = $this -> app -> middleware ( $middlewareQueue ?? new MiddlewareQueue ());
if ( $this -> app instanceof PluginApplicationInterface ) {
$middleware = $this -> app -> pluginMiddleware ( $middleware );
}
Arguments
object( Cake\Http\MiddlewareQueue ) id: 0 {
protected position => (int) 0
protected queue => [
(int) 0 => object( Cake\Error\Middleware\ErrorHandlerMiddleware ) id: 1 {
} ,
]
}
// Bind your application to the server.
$server = new Server (new Application ( dirname ( __DIR__ ) . '/config' ));
// Run the request/response through the application and emit the response.
$server -> emit ( $server -> run ());
Error in:
ROOT/src/Application.php, line 91
If you want to customize this error message, create
templates/Error/error500.php