1: <?php
2:
3: namespace Psr\Http\Message;
4:
5: /**
6: * Representation of an outgoing, server-side response.
7: *
8: * Per the HTTP specification, this interface includes properties for
9: * each of the following:
10: *
11: * - Protocol version
12: * - Status code and reason phrase
13: * - Headers
14: * - Message body
15: *
16: * Responses are considered immutable; all methods that might change state MUST
17: * be implemented such that they retain the internal state of the current
18: * message and return an instance that contains the changed state.
19: */
20: interface ResponseInterface extends MessageInterface
21: {
22: /**
23: * Gets the response status code.
24: *
25: * The status code is a 3-digit integer result code of the server's attempt
26: * to understand and satisfy the request.
27: *
28: * @return int status code
29: */
30: public function getStatusCode();
31:
32: /**
33: * Return an instance with the specified status code and, optionally, reason phrase.
34: *
35: * If no reason phrase is specified, implementations MAY choose to default
36: * to the RFC 7231 or IANA recommended reason phrase for the response's
37: * status code.
38: *
39: * This method MUST be implemented in such a way as to retain the
40: * immutability of the message, and MUST return an instance that has the
41: * updated status and reason phrase.
42: *
43: * provided status code; if none is provided, implementations MAY
44: * use the defaults as suggested in the HTTP specification.
45: *
46: * @see http://tools.ietf.org/html/rfc7231#section-6
47: * @see http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
48: *
49: * @param int $code the 3-digit integer result code to set
50: * @param string $reasonPhrase The reason phrase to use with the
51: *
52: * @throws \InvalidArgumentException for invalid status code arguments
53: *
54: * @return self
55: */
56: public function withStatus($code, $reasonPhrase = '');
57:
58: /**
59: * Gets the response reason phrase associated with the status code.
60: *
61: * Because a reason phrase is not a required element in a response
62: * status line, the reason phrase value MAY be null. Implementations MAY
63: * choose to return the default RFC 7231 recommended reason phrase (or those
64: * listed in the IANA HTTP Status Code Registry) for the response's
65: * status code.
66: *
67: * @see http://tools.ietf.org/html/rfc7231#section-6
68: * @see http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
69: *
70: * @return string reason phrase; must return an empty string if none present
71: */
72: public function getReasonPhrase();
73: }
74: