1<?php 2 3namespace 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 */ 20interface 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 static 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