|
| 1 | +# Interfaces |
| 2 | + |
| 3 | +The purpose of this list is to help in finding the methods when working with PSR-7. This can be considered as a cheatsheet for PSR-7 interfaces. |
| 4 | + |
| 5 | +The interfaces defined in PSR-7 are the following: |
| 6 | + |
| 7 | +| Class Name | Description | |
| 8 | +|---|---| |
| 9 | +| [Psr\Http\Message\MessageInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagemessageinterface) | Representation of a HTTP message | |
| 10 | +| [Psr\Http\Message\RequestInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagerequestinterface) | Representation of an outgoing, client-side request. | |
| 11 | +| [Psr\Http\Message\ServerRequestInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageserverrequestinterface) | Representation of an incoming, server-side HTTP request. | |
| 12 | +| [Psr\Http\Message\ResponseInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageresponseinterface) | Representation of an outgoing, server-side response. | |
| 13 | +| [Psr\Http\Message\StreamInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagestreaminterface) | Describes a data stream | |
| 14 | +| [Psr\Http\Message\UriInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageuriinterface) | Value object representing a URI. | |
| 15 | +| [Psr\Http\Message\UploadedFileInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageuploadedfileinterface) | Value object representing a file uploaded through an HTTP request. | |
| 16 | + |
| 17 | +## `Psr\Http\Message\MessageInterface` Methods |
| 18 | + |
| 19 | +| Method Name | Description | Notes | |
| 20 | +|------------------------------------| ----------- | ----- | |
| 21 | +| `getProtocolVersion()` | Retrieve HTTP protocol version | 1.0 or 1.1 | |
| 22 | +| `withProtocolVersion($version)` | Returns new message instance with given HTTP protocol version | | |
| 23 | +| `getHeaders()` | Retrieve all HTTP Headers | [Request Header List](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields), [Response Header List](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields) | |
| 24 | +| `hasHeader($name)` | Checks if HTTP Header with given name exists | | |
| 25 | +| `getHeader($name)` | Retrieves a array with the values for a single header | | |
| 26 | +| `getHeaderLine($name)` | Retrieves a comma-separated string of the values for a single header | | |
| 27 | +| `withHeader($name, $value)` | Returns new message instance with given HTTP Header | if the header existed in the original instance, replaces the header value from the original message with the value provided when creating the new instance. | |
| 28 | +| `withAddedHeader($name, $value)` | Returns new message instance with appended value to given header | If header already exists value will be appended, if not a new header will be created | |
| 29 | +| `withoutHeader($name)` | Removes HTTP Header with given name| | |
| 30 | +| `getBody()` | Retrieves the HTTP Message Body | Returns object implementing `StreamInterface`| |
| 31 | +| `withBody(StreamInterface $body)` | Returns new message instance with given HTTP Message Body | | |
| 32 | + |
| 33 | + |
| 34 | +## `Psr\Http\Message\RequestInterface` Methods |
| 35 | + |
| 36 | +Same methods as `Psr\Http\Message\MessageInterface` + the following methods: |
| 37 | + |
| 38 | +| Method Name | Description | Notes | |
| 39 | +|------------------------------------| ----------- | ----- | |
| 40 | +| `getRequestTarget()` | Retrieves the message's request target | origin-form, absolute-form, authority-form, asterisk-form ([RFC7230](https://www.rfc-editor.org/rfc/rfc7230.txt)) | |
| 41 | +| `withRequestTarget($requestTarget)` | Return a new message instance with the specific request-target | | |
| 42 | +| `getMethod()` | Retrieves the HTTP method of the request. | GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE (defined in [RFC7231](https://tools.ietf.org/html/rfc7231)), PATCH (defined in [RFC5789](https://tools.ietf.org/html/rfc5789)) | |
| 43 | +| `withMethod($method)` | Returns a new message instance with the provided HTTP method | | |
| 44 | +| `getUri()` | Retrieves the URI instance | | |
| 45 | +| `withUri(UriInterface $uri, $preserveHost = false)` | Returns a new message instance with the provided URI | | |
| 46 | + |
| 47 | + |
| 48 | +## `Psr\Http\Message\ServerRequestInterface` Methods |
| 49 | + |
| 50 | +Same methods as `Psr\Http\Message\RequestInterface` + the following methods: |
| 51 | + |
| 52 | +| Method Name | Description | Notes | |
| 53 | +|------------------------------------| ----------- | ----- | |
| 54 | +| `getServerParams() ` | Retrieve server parameters | Typically derived from `$_SERVER` | |
| 55 | +| `getCookieParams()` | Retrieves cookies sent by the client to the server. | Typically derived from `$_COOKIES` | |
| 56 | +| `withCookieParams(array $cookies)` | Returns a new request instance with the specified cookies | | |
| 57 | +| `withQueryParams(array $query)` | Returns a new request instance with the specified query string arguments | | |
| 58 | +| `getUploadedFiles()` | Retrieve normalized file upload data | | |
| 59 | +| `withUploadedFiles(array $uploadedFiles)` | Returns a new request instance with the specified uploaded files | | |
| 60 | +| `getParsedBody()` | Retrieve any parameters provided in the request body | | |
| 61 | +| `withParsedBody($data)` | Returns a new request instance with the specified body parameters | | |
| 62 | +| `getAttributes()` | Retrieve attributes derived from the request | | |
| 63 | +| `getAttribute($name, $default = null)` | Retrieve a single derived request attribute | | |
| 64 | +| `withAttribute($name, $value)` | Returns a new request instance with the specified derived request attribute | | |
| 65 | +| `withoutAttribute($name)` | Returns a new request instance that without the specified derived request attribute | | |
| 66 | + |
| 67 | +## `Psr\Http\Message\ResponseInterface` Methods: |
| 68 | + |
| 69 | +Same methods as `Psr\Http\Message\MessageInterface` + the following methods: |
| 70 | + |
| 71 | +| Method Name | Description | Notes | |
| 72 | +|------------------------------------| ----------- | ----- | |
| 73 | +| `getStatusCode()` | Gets the response status code. | | |
| 74 | +| `withStatus($code, $reasonPhrase = '')` | Returns a new response instance with the specified status code and, optionally, reason phrase. | | |
| 75 | +| `getReasonPhrase()` | Gets the response reason phrase associated with the status code. | | |
| 76 | + |
| 77 | +## `Psr\Http\Message\StreamInterface` Methods |
| 78 | + |
| 79 | +| Method Name | Description | Notes | |
| 80 | +|------------------------------------| ----------- | ----- | |
| 81 | +| `__toString()` | Reads all data from the stream into a string, from the beginning to end. | | |
| 82 | +| `close()` | Closes the stream and any underlying resources. | | |
| 83 | +| `detach()` | Separates any underlying resources from the stream. | | |
| 84 | +| `getSize()` | Get the size of the stream if known. | | |
| 85 | +| `eof()` | Returns true if the stream is at the end of the stream.| | |
| 86 | +| `isSeekable()` | Returns whether or not the stream is seekable. | | |
| 87 | +| `seek($offset, $whence = SEEK_SET)` | Seek to a position in the stream. | | |
| 88 | +| `rewind()` | Seek to the beginning of the stream. | | |
| 89 | +| `isWritable()` | Returns whether or not the stream is writable. | | |
| 90 | +| `write($string)` | Write data to the stream. | | |
| 91 | +| `isReadable()` | Returns whether or not the stream is readable. | | |
| 92 | +| `read($length)` | Read data from the stream. | | |
| 93 | +| `getContents()` | Returns the remaining contents in a string | | |
| 94 | +| `getMetadata($key = null)()` | Get stream metadata as an associative array or retrieve a specific key. | | |
| 95 | + |
| 96 | +## `Psr\Http\Message\UriInterface` Methods |
| 97 | + |
| 98 | +| Method Name | Description | Notes | |
| 99 | +|------------------------------------| ----------- | ----- | |
| 100 | +| `getScheme()` | Retrieve the scheme component of the URI. | | |
| 101 | +| `getAuthority()` | Retrieve the authority component of the URI. | | |
| 102 | +| `getUserInfo()` | Retrieve the user information component of the URI. | | |
| 103 | +| `getHost()` | Retrieve the host component of the URI. | | |
| 104 | +| `getPort()` | Retrieve the port component of the URI. | | |
| 105 | +| `getPath()` | Retrieve the path component of the URI. | | |
| 106 | +| `getQuery()` | Retrieve the query string of the URI. | | |
| 107 | +| `getFragment()` | Retrieve the fragment component of the URI. | | |
| 108 | +| `withScheme($scheme)` | Return an instance with the specified scheme. | | |
| 109 | +| `withUserInfo($user, $password = null)` | Return an instance with the specified user information. | | |
| 110 | +| `withHost($host)` | Return an instance with the specified host. | | |
| 111 | +| `withPort($port)` | Return an instance with the specified port. | | |
| 112 | +| `withPath($path)` | Return an instance with the specified path. | | |
| 113 | +| `withQuery($query)` | Return an instance with the specified query string. | | |
| 114 | +| `withFragment($fragment)` | Return an instance with the specified URI fragment. | | |
| 115 | +| `__toString()` | Return the string representation as a URI reference. | | |
| 116 | + |
| 117 | +## `Psr\Http\Message\UploadedFileInterface` Methods |
| 118 | + |
| 119 | +| Method Name | Description | Notes | |
| 120 | +|------------------------------------| ----------- | ----- | |
| 121 | +| `getStream()` | Retrieve a stream representing the uploaded file. | | |
| 122 | +| `moveTo($targetPath)` | Move the uploaded file to a new location. | | |
| 123 | +| `getSize()` | Retrieve the file size. | | |
| 124 | +| `getError()` | Retrieve the error associated with the uploaded file. | | |
| 125 | +| `getClientFilename()` | Retrieve the filename sent by the client. | | |
| 126 | +| `getClientMediaType()` | Retrieve the media type sent by the client. | | |
| 127 | + |
| 128 | +> `RequestInterface`, `ServerRequestInterface`, `ResponseInterface` extend `MessageInterface` because the `Request` and the `Response` are `HTTP Messages`. |
| 129 | +> When using `ServerRequestInterface`, both `RequestInterface` and `Psr\Http\Message\MessageInterface` methods are considered. |
| 130 | +
|
0 commit comments