Можно ли изменить режим подавления исключений по умолчанию в режиме отладки Symfony 7?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли изменить режим подавления исключений по умолчанию в режиме отладки Symfony 7?

Сообщение Anonymous »

TL;DR

Похоже, что с APP_DEBUG=1 Symfony перехватывает и подавляет различные исключения.
Пресеты.

Установлена ​​Symfony 7, --webapp.

Конверт по умолчанию, настройки.

APP_DEBUG=1

Воспроизвести

Создать контроллер ping.

Создать еще один каталог "src/Dto" " и пустой класс UserDto.php.

Сделайте НЕПРАВИЛЬНОЕ ПРОСТРАНСТВО ИМЕН, т.е.

Код: Выделить всё

namespace App\Dto\SomeWrong;

class UserDto
{
}
GET localhost/ping

Имеет 200 с ответом: версия symfony: 7.1.6

Затем

Сделано APP_DEBUG=0 в .env (dev)

Имеет ошибку 500

Код: Выделить всё

Uncaught Exception: Expected to find class "App\Dto\UserDto" in file
"/test_project/src/Dto/UserDto.php" while importing services from resource "../src/",
but it was not found! Check the namespace prefix used with the resource in /test_project/config/services.yaml
(which is being imported from "/test_project/src/Kernel.php").
Я пытался разобраться в этом с помощью отладки, но, к сожалению, у меня нет такого опыта в глубокой работе Symfony.

Например, можно увидеть исключение в браузере после запросите, если в index.php сделайте DebugClassLoader::disable().
Внутри DebugClassLoader::checkClass() он определенно выдает RuntimeException о неправильном пространстве имен, это может быть просмотренным ./bin/console debug:container UserDto

Код: Выделить всё

Tags   container.error (message: The autoloader expected class "App\Dto\UserDto"
to be defined in file "/test_project/vendor/composer/../../src/Dto/UserDto.php".
The file was found but the class was not in it, the class name or namespace probably has a typo.)
Я пытался создать собственный ExceptionListener, но безуспешно.

Похоже, что Symfony перехватывает исключения и подавляет их.
Теперь я нашел решение для обнаружения этой ошибки с помощью правил phpcs + slevomat

Код: Выделить всё

SlevomatCodingStandard.Files.TypeNameMatchesFileName
Но я ожидаю увидеть ВСЕ ошибки в режиме отладки в Symfony, однако некоторые из них ПОДАВЛЯЮТСЯ.

Это кажется весьма удивительным когда APP_DEBUG=0 показывает исключение, а APP_DEBUG=1 нет, не так ли?

Можно ли это как-то настроить?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ny-7-debug
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»