1 <?php
2
3 namespace Http\Message\MessageFactory;
4
5 use Http\Message\StreamFactory\DiactorosStreamFactory;
6 use Http\Message\MessageFactory;
7 use Zend\Diactoros\Request;
8 use Zend\Diactoros\Response;
9
10 11 12 13 14
15 final class DiactorosMessageFactory implements MessageFactory
16 {
17 18 19
20 private $streamFactory;
21
22 public function __construct()
23 {
24 $this->streamFactory = new DiactorosStreamFactory();
25 }
26
27 28 29
30 public function createRequest(
31 $method,
32 $uri,
33 array $headers = [],
34 $body = null,
35 $protocolVersion = '1.1'
36 ) {
37 return (new Request(
38 $uri,
39 $method,
40 $this->streamFactory->createStream($body),
41 $headers
42 ))->withProtocolVersion($protocolVersion);
43 }
44
45 46 47
48 public function createResponse(
49 $statusCode = 200,
50 $reasonPhrase = null,
51 array $headers = [],
52 $body = null,
53 $protocolVersion = '1.1'
54 ) {
55 return (new Response(
56 $this->streamFactory->createStream($body),
57 $statusCode,
58 $headers
59 ))->withProtocolVersion($protocolVersion);
60 }
61 }
62