Performance: Terminable middleware
MEDIUM IMPACT
Terminable middleware affects the response lifecycle by running code after the response is sent, impacting server response time and user experience.
<?php namespace App\Http\Middleware; use Closure; class LogMiddleware { public function handle($request, Closure $next) { return $next($request); } public function terminate($request, $response) { // Logging happens after response sent \Log::info('Request logged'); } }
<?php namespace App\Http\Middleware; use Closure; class LogMiddleware { public function handle($request, Closure $next) { $response = $next($request); // Logging happens here before response is sent \Log::info('Request logged'); return $response; } }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Logging inside handle() | 0 (server-side) | 0 | 0 | [X] Bad - blocks response, delays user interaction |
| Logging inside terminate() | 0 (server-side) | 0 | 0 | [OK] Good - response sent immediately, no delay |