• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

slimphp / Slim / 15373855125

01 Jun 2025 10:15AM UTC coverage: 98.808% (+0.1%) from 98.663%
15373855125

Pull #3396

github

web-flow
Merge b22b0d19d into 89b8de367
Pull Request #3396: Add v5

124 of 128 new or added lines in 9 files covered. (96.88%)

995 of 1007 relevant lines covered (98.81%)

37.31 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.91
/Slim/Middleware/FormUrlEncodedBodyParserMiddleware.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Slim\Middleware;
6

7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Psr\Http\Server\MiddlewareInterface;
10
use Psr\Http\Server\RequestHandlerInterface;
11

12
final class FormUrlEncodedBodyParserMiddleware implements MiddlewareInterface
13
{
14
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
15
    {
16
        $method = $request->getMethod();
3✔
17
        $contentType = $request->getHeaderLine('Content-Type');
3✔
18

19
        if (!in_array($method, ['POST', 'PUT', 'PATCH', 'DELETE'], true)) {
3✔
NEW
20
            return $handler->handle($request);
×
21
        }
22

23
        if ($this->isFormUrlEncodedMediaType($contentType)) {
3✔
24
            $body = (string)$request->getBody();
2✔
25
            parse_str($body, $parsed);
2✔
26
            $request = $request->withParsedBody($parsed);
2✔
27
        }
28

29
        return $handler->handle($request);
3✔
30
    }
31

32
    private function isFormUrlEncodedMediaType(string $contentType): bool
33
    {
34
        $type = strtolower(trim(explode(';', $contentType)[0]));
3✔
35

36
        return $type === 'application/x-www-form-urlencoded';
3✔
37
    }
38
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc