PSR 7 与值对象(Value Objects)

    Slim 提供了它自有的 PSR-7 实现方法,使其可以开箱即用。然而,你可以自由地用第三方实现方法来替换 Slim 的默认 PSR 7 对象。只需覆写应用容器的 requestresponse 服务,这样它们就能分别返回一个 \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 接口提供了以下方法来转换响应对象: