Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1441 ariadna 1
<?php
2
 
3
/**
4
 * Slim Framework (https://slimframework.com)
5
 *
6
 * @license https://github.com/slimphp/Slim/blob/4.x/LICENSE.md (MIT License)
7
 */
8
 
9
declare(strict_types=1);
10
 
11
namespace Slim\Middleware;
12
 
13
use Psr\Http\Message\ResponseInterface;
14
use Psr\Http\Message\ServerRequestInterface;
15
use Psr\Http\Server\MiddlewareInterface;
16
use Psr\Http\Server\RequestHandlerInterface;
17
 
18
class ContentLengthMiddleware implements MiddlewareInterface
19
{
20
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
21
    {
22
        $response = $handler->handle($request);
23
 
24
        // Add Content-Length header if not already added
25
        $size = $response->getBody()->getSize();
26
        if ($size !== null && !$response->hasHeader('Content-Length')) {
27
            $response = $response->withHeader('Content-Length', (string) $size);
28
        }
29
 
30
        return $response;
31
    }
32
}