Mercurial > hg > isophonics-drupal-site
comparison vendor/psr/http-message/src/MessageInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Psr\Http\Message; | |
4 | |
5 /** | |
6 * HTTP messages consist of requests from a client to a server and responses | |
7 * from a server to a client. This interface defines the methods common to | |
8 * each. | |
9 * | |
10 * Messages are considered immutable; all methods that might change state MUST | |
11 * be implemented such that they retain the internal state of the current | |
12 * message and return an instance that contains the changed state. | |
13 * | |
14 * @link http://www.ietf.org/rfc/rfc7230.txt | |
15 * @link http://www.ietf.org/rfc/rfc7231.txt | |
16 */ | |
17 interface MessageInterface | |
18 { | |
19 /** | |
20 * Retrieves the HTTP protocol version as a string. | |
21 * | |
22 * The string MUST contain only the HTTP version number (e.g., "1.1", "1.0"). | |
23 * | |
24 * @return string HTTP protocol version. | |
25 */ | |
26 public function getProtocolVersion(); | |
27 | |
28 /** | |
29 * Return an instance with the specified HTTP protocol version. | |
30 * | |
31 * The version string MUST contain only the HTTP version number (e.g., | |
32 * "1.1", "1.0"). | |
33 * | |
34 * This method MUST be implemented in such a way as to retain the | |
35 * immutability of the message, and MUST return an instance that has the | |
36 * new protocol version. | |
37 * | |
38 * @param string $version HTTP protocol version | |
39 * @return static | |
40 */ | |
41 public function withProtocolVersion($version); | |
42 | |
43 /** | |
44 * Retrieves all message header values. | |
45 * | |
46 * The keys represent the header name as it will be sent over the wire, and | |
47 * each value is an array of strings associated with the header. | |
48 * | |
49 * // Represent the headers as a string | |
50 * foreach ($message->getHeaders() as $name => $values) { | |
51 * echo $name . ": " . implode(", ", $values); | |
52 * } | |
53 * | |
54 * // Emit headers iteratively: | |
55 * foreach ($message->getHeaders() as $name => $values) { | |
56 * foreach ($values as $value) { | |
57 * header(sprintf('%s: %s', $name, $value), false); | |
58 * } | |
59 * } | |
60 * | |
61 * While header names are not case-sensitive, getHeaders() will preserve the | |
62 * exact case in which headers were originally specified. | |
63 * | |
64 * @return string[][] Returns an associative array of the message's headers. Each | |
65 * key MUST be a header name, and each value MUST be an array of strings | |
66 * for that header. | |
67 */ | |
68 public function getHeaders(); | |
69 | |
70 /** | |
71 * Checks if a header exists by the given case-insensitive name. | |
72 * | |
73 * @param string $name Case-insensitive header field name. | |
74 * @return bool Returns true if any header names match the given header | |
75 * name using a case-insensitive string comparison. Returns false if | |
76 * no matching header name is found in the message. | |
77 */ | |
78 public function hasHeader($name); | |
79 | |
80 /** | |
81 * Retrieves a message header value by the given case-insensitive name. | |
82 * | |
83 * This method returns an array of all the header values of the given | |
84 * case-insensitive header name. | |
85 * | |
86 * If the header does not appear in the message, this method MUST return an | |
87 * empty array. | |
88 * | |
89 * @param string $name Case-insensitive header field name. | |
90 * @return string[] An array of string values as provided for the given | |
91 * header. If the header does not appear in the message, this method MUST | |
92 * return an empty array. | |
93 */ | |
94 public function getHeader($name); | |
95 | |
96 /** | |
97 * Retrieves a comma-separated string of the values for a single header. | |
98 * | |
99 * This method returns all of the header values of the given | |
100 * case-insensitive header name as a string concatenated together using | |
101 * a comma. | |
102 * | |
103 * NOTE: Not all header values may be appropriately represented using | |
104 * comma concatenation. For such headers, use getHeader() instead | |
105 * and supply your own delimiter when concatenating. | |
106 * | |
107 * If the header does not appear in the message, this method MUST return | |
108 * an empty string. | |
109 * | |
110 * @param string $name Case-insensitive header field name. | |
111 * @return string A string of values as provided for the given header | |
112 * concatenated together using a comma. If the header does not appear in | |
113 * the message, this method MUST return an empty string. | |
114 */ | |
115 public function getHeaderLine($name); | |
116 | |
117 /** | |
118 * Return an instance with the provided value replacing the specified header. | |
119 * | |
120 * While header names are case-insensitive, the casing of the header will | |
121 * be preserved by this function, and returned from getHeaders(). | |
122 * | |
123 * This method MUST be implemented in such a way as to retain the | |
124 * immutability of the message, and MUST return an instance that has the | |
125 * new and/or updated header and value. | |
126 * | |
127 * @param string $name Case-insensitive header field name. | |
128 * @param string|string[] $value Header value(s). | |
129 * @return static | |
130 * @throws \InvalidArgumentException for invalid header names or values. | |
131 */ | |
132 public function withHeader($name, $value); | |
133 | |
134 /** | |
135 * Return an instance with the specified header appended with the given value. | |
136 * | |
137 * Existing values for the specified header will be maintained. The new | |
138 * value(s) will be appended to the existing list. If the header did not | |
139 * exist previously, it will be added. | |
140 * | |
141 * This method MUST be implemented in such a way as to retain the | |
142 * immutability of the message, and MUST return an instance that has the | |
143 * new header and/or value. | |
144 * | |
145 * @param string $name Case-insensitive header field name to add. | |
146 * @param string|string[] $value Header value(s). | |
147 * @return static | |
148 * @throws \InvalidArgumentException for invalid header names or values. | |
149 */ | |
150 public function withAddedHeader($name, $value); | |
151 | |
152 /** | |
153 * Return an instance without the specified header. | |
154 * | |
155 * Header resolution MUST be done without case-sensitivity. | |
156 * | |
157 * This method MUST be implemented in such a way as to retain the | |
158 * immutability of the message, and MUST return an instance that removes | |
159 * the named header. | |
160 * | |
161 * @param string $name Case-insensitive header field name to remove. | |
162 * @return static | |
163 */ | |
164 public function withoutHeader($name); | |
165 | |
166 /** | |
167 * Gets the body of the message. | |
168 * | |
169 * @return StreamInterface Returns the body as a stream. | |
170 */ | |
171 public function getBody(); | |
172 | |
173 /** | |
174 * Return an instance with the specified message body. | |
175 * | |
176 * The body MUST be a StreamInterface object. | |
177 * | |
178 * This method MUST be implemented in such a way as to retain the | |
179 * immutability of the message, and MUST return a new instance that has the | |
180 * new body stream. | |
181 * | |
182 * @param StreamInterface $body Body. | |
183 * @return static | |
184 * @throws \InvalidArgumentException When the body is not valid. | |
185 */ | |
186 public function withBody(StreamInterface $body); | |
187 } |