Blame view

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