Slim框架返回没有'的响应;


Slim Framework returning response without 'return $response'

我很困惑Slim如何按照文档返回没有return $response的响应。

如果我有以下代码:

$app->get('/login', function ($request, $response, $args) {
    $response = $this->view->render($response, "login.php");
    return $response;  
});

当我通过浏览器调用/login时,它会呈现我的login.php模板,这是我所期望的。

但如果我删除return $response它仍然工作这似乎不正确?

$app->get('/login', function ($request, $response, $args) {
    $response = $this->view->render($response, "login.php"); 
});

两组代码有相同的输出。

Slim如何显示响应,如果$response不是被返回?

主体是Psr'Http'Message'StreamInterface,这不是不可变的,当你在主体上添加一些东西时,你通常会这样做:

$body = $response->getBody();
$body->write($string);
$body->write($string2);

这改变了流的内容,但仍然在同一个$response -Object中。

由于视图渲染器只附加到主体,因此不需要实际返回$response