没有 'return $response' 的 Slim Framework 返回响应
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");
});
两组代码输出相同。
如果返回 $response
不是,Slim 如何显示响应?
正文是一个 Psr\Http\Message\StreamInterface
,它不是不可变的,当您将某些内容附加到正文时,您通常会这样做:
$body = $response->getBody();
$body->write($string);
$body->write($string2);
这改变了流的内容,但仍然在同一个 $response
-Object.
由于视图渲染器仅附加到正文,因此实际上不需要 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");
});
两组代码输出相同。
如果返回 $response
不是,Slim 如何显示响应?
正文是一个 Psr\Http\Message\StreamInterface
,它不是不可变的,当您将某些内容附加到正文时,您通常会这样做:
$body = $response->getBody();
$body->write($string);
$body->write($string2);
这改变了流的内容,但仍然在同一个 $response
-Object.
由于视图渲染器仅附加到正文,因此实际上不需要 return $response
。