#php #slim
#php #тонкий
Вопрос:
Я смущен тем, как 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
он не возвращается?
Ответ №1:
Тело — это PsrHttpMessageStreamInterface
, которое не является неизменяемым, когда вы добавляете что-то к телу, которое вы обычно делаете:
$body = $response->getBody();
$body->write($string);
$body->write($string2);
Это изменяет содержимое потока, но все еще находится в том же $response
объекте.
Поскольку средство визуализации представления только добавляет к телу, нет необходимости фактически возвращать $response
.