DiactorosMessageFactory.php 1.3 KB

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