Mercurial > hg > isophonics-drupal-site
comparison vendor/psr/http-message/src/RequestInterface.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 * Representation of an outgoing, client-side request. | |
7 * | |
8 * Per the HTTP specification, this interface includes properties for | |
9 * each of the following: | |
10 * | |
11 * - Protocol version | |
12 * - HTTP method | |
13 * - URI | |
14 * - Headers | |
15 * - Message body | |
16 * | |
17 * During construction, implementations MUST attempt to set the Host header from | |
18 * a provided URI if no Host header is provided. | |
19 * | |
20 * Requests are considered immutable; all methods that might change state MUST | |
21 * be implemented such that they retain the internal state of the current | |
22 * message and return an instance that contains the changed state. | |
23 */ | |
24 interface RequestInterface extends MessageInterface | |
25 { | |
26 /** | |
27 * Retrieves the message's request target. | |
28 * | |
29 * Retrieves the message's request-target either as it will appear (for | |
30 * clients), as it appeared at request (for servers), or as it was | |
31 * specified for the instance (see withRequestTarget()). | |
32 * | |
33 * In most cases, this will be the origin-form of the composed URI, | |
34 * unless a value was provided to the concrete implementation (see | |
35 * withRequestTarget() below). | |
36 * | |
37 * If no URI is available, and no request-target has been specifically | |
38 * provided, this method MUST return the string "/". | |
39 * | |
40 * @return string | |
41 */ | |
42 public function getRequestTarget(); | |
43 | |
44 /** | |
45 * Return an instance with the specific request-target. | |
46 * | |
47 * If the request needs a non-origin-form request-target — e.g., for | |
48 * specifying an absolute-form, authority-form, or asterisk-form — | |
49 * this method may be used to create an instance with the specified | |
50 * request-target, verbatim. | |
51 * | |
52 * This method MUST be implemented in such a way as to retain the | |
53 * immutability of the message, and MUST return an instance that has the | |
54 * changed request target. | |
55 * | |
56 * @link http://tools.ietf.org/html/rfc7230#section-5.3 (for the various | |
57 * request-target forms allowed in request messages) | |
58 * @param mixed $requestTarget | |
59 * @return static | |
60 */ | |
61 public function withRequestTarget($requestTarget); | |
62 | |
63 /** | |
64 * Retrieves the HTTP method of the request. | |
65 * | |
66 * @return string Returns the request method. | |
67 */ | |
68 public function getMethod(); | |
69 | |
70 /** | |
71 * Return an instance with the provided HTTP method. | |
72 * | |
73 * While HTTP method names are typically all uppercase characters, HTTP | |
74 * method names are case-sensitive and thus implementations SHOULD NOT | |
75 * modify the given string. | |
76 * | |
77 * This method MUST be implemented in such a way as to retain the | |
78 * immutability of the message, and MUST return an instance that has the | |
79 * changed request method. | |
80 * | |
81 * @param string $method Case-sensitive method. | |
82 * @return static | |
83 * @throws \InvalidArgumentException for invalid HTTP methods. | |
84 */ | |
85 public function withMethod($method); | |
86 | |
87 /** | |
88 * Retrieves the URI instance. | |
89 * | |
90 * This method MUST return a UriInterface instance. | |
91 * | |
92 * @link http://tools.ietf.org/html/rfc3986#section-4.3 | |
93 * @return UriInterface Returns a UriInterface instance | |
94 * representing the URI of the request. | |
95 */ | |
96 public function getUri(); | |
97 | |
98 /** | |
99 * Returns an instance with the provided URI. | |
100 * | |
101 * This method MUST update the Host header of the returned request by | |
102 * default if the URI contains a host component. If the URI does not | |
103 * contain a host component, any pre-existing Host header MUST be carried | |
104 * over to the returned request. | |
105 * | |
106 * You can opt-in to preserving the original state of the Host header by | |
107 * setting `$preserveHost` to `true`. When `$preserveHost` is set to | |
108 * `true`, this method interacts with the Host header in the following ways: | |
109 * | |
110 * - If the Host header is missing or empty, and the new URI contains | |
111 * a host component, this method MUST update the Host header in the returned | |
112 * request. | |
113 * - If the Host header is missing or empty, and the new URI does not contain a | |
114 * host component, this method MUST NOT update the Host header in the returned | |
115 * request. | |
116 * - If a Host header is present and non-empty, this method MUST NOT update | |
117 * the Host header in the returned request. | |
118 * | |
119 * This method MUST be implemented in such a way as to retain the | |
120 * immutability of the message, and MUST return an instance that has the | |
121 * new UriInterface instance. | |
122 * | |
123 * @link http://tools.ietf.org/html/rfc3986#section-4.3 | |
124 * @param UriInterface $uri New request URI to use. | |
125 * @param bool $preserveHost Preserve the original state of the Host header. | |
126 * @return static | |
127 */ | |
128 public function withUri(UriInterface $uri, $preserveHost = false); | |
129 } |