既然 PSR-7 响应应该是不可变的,为什么我要编写这段令人不安的“变异”代码?
public function controller(Response $response): Response
{
$response->getBody()->write("Hey.");
return $response;
}
在我看来,虽然 Response 本身是不可变的,这意味着我们在调用时会得到一个新对象$response->withHeader(…)
,但我们仍然可以(并且通常会)改变它的 Body 对象(不是响应中最不重要的部分)。
这不矛盾吗?或者它是完全明智的?这对我来说似乎很奇怪。