1: <?php
2:
3: namespace PHPixie\HTTPProcessors\Processor;
4:
5: class ParseBody implements \PHPixie\Processors\Processor
6: {
7: protected $parsers;
8:
9: public function __construct($parsers)
10: {
11: $this->parsers = $parsers;
12: }
13:
14: public function process($serverRequest)
15: {
16: $contentType = $serverRequest->getHeaderLine('Content-Type');
17: $contentType = strtolower($contentType);
18:
19: $parser = $this->parsers->getForContentType($contentType);
20:
21: if($parser !== null) {
22: $body = (string) $serverRequest->getBody();
23: $parsed = $parser->parse($body);
24: $serverRequest = $serverRequest->withParsedBody($parsed);
25: }
26:
27: return $serverRequest;
28: }
29: }