РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
540 of 1361 menu

Исключение LockedHttpException

Исключение LockedHttpException представляет собой HTTP-исключение, которое соответствует статус-коду 423 Locked. Оно используется в ситуациях, когда доступ к ресурсу временно или постоянно заблокирован. Например, при попытке редактирования документа, который уже кем-то редактируется, или при обращении к файлу, заблокированному системой. Класс наследуется от HttpException и позволяет передать сообщение об ошибке, а также дополнительные заголовки.

Синтаксис

use Symfony\Component\HttpKernel\Exception\LockedHttpException; throw new LockedHttpException( string $message = '', \Throwable $previous = null, int $code = 0, array $headers = [] );

Пример

Давайте выбросим исключение LockedHttpException в контроллере, если ресурс заблокирован:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\HttpKernel\Exception\LockedHttpException; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(int $id): Response { $isLocked = true; if ($isLocked) { throw new LockedHttpException('The article is locked for editing.'); } return new Response('Article content'); } } ?>

При обращении к адресу /article/1 Symfony вернёт ответ со статус-кодом 423 и текстом ошибки.

Результат выполнения кода:

The article is locked for editing.

Пример

Давайте добавим кастомный заголовок к исключению:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\HttpKernel\Exception\LockedHttpException; class ArticleController extends AbstractController { #[Route('/article/{id}/edit', name: 'article_edit')] public function edit(int $id): Response { $headers = ['X-Lock-Reason' => 'Editing in progress']; throw new LockedHttpException( 'The resource is locked.', null, 0, $headers ); } } ?>

В этом случае ответ будет содержать заголовок X-Lock-Reason со значением Editing in progress.

Смотрите также

  • исключение HttpException,
    базовый класс для всех HTTP-исключений
  • исключение ConflictHttpException,
    которое сигнализирует о конфликте версий ресурса
  • исключение ServiceUnavailableHttpException,
    которое указывает на временную недоступность сервиса
  • исключение PreconditionFailedHttpException,
    которое возникает при невыполнении предварительного условия запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить