Метод getStatusCode
Метод getStatusCode принадлежит классу Response и возвращает целое число - HTTP-код состояния текущего ответа. Параметров метод не принимает. По умолчанию любой новый объект Response имеет код 200, что означает успешное выполнение запроса. Если ответ был создан с другим кодом, например 404 или 500, метод вернёт именно это значение.
Синтаксис
$code = $response->getStatusCode();
Пример
Давайте создадим ответ с кодом по умолчанию и получим его статус:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$response = new Response('hello');
$code = $response->getStatusCode();
return new Response((string) $code);
}
}
?>
Результат выполнения кода:
200
Пример
Давайте создадим ответ с кодом 404 и проверим результат:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/not-found', name: 'article_not_found')]
public function notFound(): Response
{
$response = new Response('page not found', Response::HTTP_NOT_FOUND);
$code = $response->getStatusCode();
return new Response((string) $code);
}
}
?>
Результат выполнения кода:
404
Пример
Давайте изменим код ответа через setStatusCode и затем прочитаем его через getStatusCode:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/server-error', name: 'article_server_error')]
public function serverError(): Response
{
$response = new Response('hello');
$response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR);
$code = $response->getStatusCode();
return new Response((string) $code);
}
}
?>
Результат выполнения кода:
500
Пример
Давайте используем getStatusCode вместе с методами проверки, чтобы вывести текстовое описание статуса:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/status', name: 'article_status')]
public function status(): Response
{
$response = new Response('abcde', Response::HTTP_OK);
$code = $response->getStatusCode();
if ($response->isSuccessful()) {
$text = 'success: ' . $code;
} else {
$text = 'error: ' . $code;
}
return new Response($text);
}
}
?>
Результат выполнения кода:
"success: 200"
Смотрите также
-
класс
Response,
который представляет HTTP-ответ -
метод
setStatusCode,
который задаёт HTTP-код ответа -
метод
isSuccessful,
который проверяет успешность ответа -
метод
isNotFound,
который проверяет код 404