PSR 7 与值对象(Value Objects)
Slim 提供了它自有的 PSR-7 实现方法,使其可以开箱即用。然而,你可以自由地用第三方实现方法来替换 Slim 的默认 PSR 7 对象。只需覆写应用容器的 request
和 response
服务,这样它们就能分别返回一个 \Psr\Http\Message\ServerRequestInterface
和 \Psr\Http\Message\ResponseInterface
的实例。
Slim 的请求和响应对象是不可改变的值对象。. 只能通过请求一个有属性值更新的克隆版本来改变它们。值对象有一个额定的开销,因为它们必须在更新时进行克隆。这个开销并不会以任何有实际意义的方式影响到性能。
PSR 7 接口提供了以下方法来转换请求和响应对象:
withProtocolVersion($version)
withHeader($name, $value)
withAddedHeader($name, $value)
withBody(StreamInterface $body)
PSR 7 接口提供了以下方法来转换请求对象:withUri(UriInterface $uri, $preserveHost = false)
withCookieParams(array $cookies)
withUploadedFiles(array $uploadedFiles)
withParsedBody($data)
withAttribute($name, $value)
PSR 7 接口提供了以下方法来转换响应对象: