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: * @link http://tools.ietf.org/html/rfc7231#section-6
44: * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
45: * @param int $code The 3-digit integer result code to set.
46: * @param string $reasonPhrase The reason phrase to use with the
47: * provided status code; if none is provided, implementations MAY
48: * use the defaults as suggested in the HTTP specification.
49: * @return self
50: * @throws \InvalidArgumentException For invalid status code arguments.
51: */
52: public function withStatus($code, $reasonPhrase = '');
53:
54: /**
55: * Gets the response reason phrase associated with the status code.
56: *
57: * Because a reason phrase is not a required element in a response
58: * status line, the reason phrase value MAY be null. Implementations MAY
59: * choose to return the default RFC 7231 recommended reason phrase (or those
60: * listed in the IANA HTTP Status Code Registry) for the response's
61: * status code.
62: *
63: * @link http://tools.ietf.org/html/rfc7231#section-6
64: * @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
65: * @return string Reason phrase; must return an empty string if none present.
66: */
67: public function getReasonPhrase();
68: }
69: