Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
InitRequest
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 1
5.58
0.00% covered (danger)
0.00%
0 / 1
 process
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 1
5.58
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Middleware;
6
7use Psr\Http\Message\ResponseInterface as Response;
8use Psr\Http\Message\ServerRequestInterface as Request;
9use Psr\Http\Server\MiddlewareInterface as Middleware;
10use Psr\Http\Server\RequestHandlerInterface as Handler;
11
12class InitRequest implements Middleware
13{
14    public function process(Request $request, Handler $handler): Response
15    {
16        // See if it's a JSON request
17        if (
18            isset($_SERVER['HTTP_X_REQUESTED_WITH'])
19            && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'
20        ) {
21            $request = $request->withAttribute('isXhr', true);
22        } else {
23            if ($request->hasHeader('Accept') && $request->getHeaderLine('Accept') === 'application/json') {
24                $request = $request->withAttribute('isXhr', true);
25            } else {
26                $request = $request->withAttribute('isXhr', false);
27            }
28        }
29
30        return $handler->handle($request);
31    }
32}