Minify::__invoke()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 7
nc 4
nop 3
1
<?php
2
3
namespace Psr7Middlewares\Middleware;
4
5
use Psr7Middlewares\Utils;
6
use Psr\Http\Message\ServerRequestInterface;
7
use Psr\Http\Message\ResponseInterface;
8
use Psr7Middlewares\Transformers;
9
10
class Minify
11
{
12
    use Utils\ResolverTrait;
13
    use Utils\AttributeTrait;
14
    use Utils\StreamTrait;
15
16
    /**
17
     * Execute the middleware.
18
     *
19
     * @param ServerRequestInterface $request
20
     * @param ResponseInterface      $response
21
     * @param callable               $next
22
     *
23
     * @return ResponseInterface
24
     */
25
    public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
26
    {
27
        $response = $next($request, $response);
28
29
        $resolver = $this->resolver ?: new Transformers\Minifier();
30
        $transformer = $resolver->resolve(Utils\Helpers::getMimeType($response));
31
32
        if ($transformer) {
33
            return $response->withBody($transformer($response->getBody(), self::createStream()));
34
        }
35
36
        return $response;
37
    }
38
}
39