Почему сайт зависает в случае ошибки в sql запросе, без вывода каких либо ошибок?

Когда сайт, построенный на фреймворке Symfony, зависает в случае ошибки в SQL запросе без вывода каких-либо ошибок, это может быть вызвано несколькими причинами.

1) Параметры конфигурации:
Проверьте параметры конфигурации в файле config/packages/doctrine.yaml или аналогичном. Некорректные параметры конфигурации могут привести к тому, что ошибки не выводятся. Убедитесь, что следующие параметры установлены:

doctrine:
    dbal:
        logging: true
    orm:
        auto_mapping: true

2) Проблемы с базой данных:
Если сайт зависает при ошибках в SQL запросах, причина может быть в некорректной настройке базы данных или недоступности самой базы данных.
Убедитесь, что параметры подключения к базе данных верны, а также проверьте, доступна ли база данных для соединения.
Проверьте логи сервера базы данных на наличие ошибок или других причин, по которым SQL запросы не выполняются.

3) Обработка ошибок в коде:
Если нет вывода ошибок, возможно, в коде проекта не предусмотрена обработка и логирование ошибок SQL запросов. В Symfony для обработки ошибок SQL запросов можно использовать события.
Рекомендуется создать подписчика событий, который будет обрабатывать ошибки SQL запросов и логировать их с помощью какого-либо инструмента логирования, например, Monolog.

Пример кода для создания подписчика событий в Symfony:

// src/EventSubscriber/ExceptionSubscriber.php

namespace AppEventSubscriber;

use DoctrineDBALEventConnectionExceptionEventArgs;
use DoctrineDBALEventListenersOracleSessionInit;
use DoctrineDBALEvents;
use DoctrineDBALExceptionConnectionException;
use PsrLogLoggerInterface;
use SymfonyComponentEventDispatcherEventSubscriberInterface;

class ExceptionSubscriber implements EventSubscriberInterface
{
    private $logger;

    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    public function onConnectionException(ConnectionExceptionEventArgs $args)
    {
        $exception = $args->getException();
        $this->logger->error('An SQL connection error occurred: '.$exception->getMessage());
    }

    public static function getSubscribedEvents()
    {
        return [
            Events::connectionException => 'onConnectionException',
        ];
    }
}
# config/packages/doctrine.yaml
doctrine:
    dbal:
        listeners:
            oracle_session: AppEventSubscriberExceptionSubscriber

4) Обработка исключений:
Если в проекте нет обработчиков исключений, то критические ошибки SQL запросов могут быть пропущены и не выводиться в виде ошибок. Рекомендуется создать обработчики исключений для логирования и вывода ошибок. В Symfony это может быть сделано с помощью компонента EventDispatcher и Monolog.

Определите обработчики исключений в конфигурационном файле config/packages/framework.yaml:

# config/packages/framework.yaml
framework:
    exception_handler:
        handlers:
            main:
                type:         fingers_crossed
                action_level: error
                handler:      nested
            nested:
                type:  stream
                path:  '%kernel.logs_dir%/%kernel.environment%.log'
                level: debug

Можно использовать встроенные логгеры Symfony или любой другой инструмент логирования, например, Monolog, для логирования ошибок.

Вывод ошибок в Symfony можно настроить в файле конфигурации config/packages/dev/prod.php. Убедитесь, что параметр display_errors установлен на значение On:

// config/packages/dev.php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

В случае, если все вышеперечисленные шаги проверены и исправлены, и сайт все равно зависает без вывода ошибок, рекомендуется обратиться к отладчику XDebug или использовать другие инструменты для отладки. XDebug позволяет перехватывать ошибки и выводить их вместе с полным стеком вызовов. Применение таких инструментов поможет выявить и решить проблему с зависанием сайта.