防止 handleRequest 连接到 Symfony2 中的数据库

Prevent handleRequest from connecting to database in Symfony2

我是本地主机上的 运行 Symfony2 并禁用了对互联网的任何访问。

我试图在不依赖数据库的情况下进行开发。但是,当我尝试使用 handleRequest() 从表单中获取值时,无论出于何种原因,它都会尝试使用我原来的 MySQL 配置连接到数据库。

我查看了堆栈,handleRequest() 应该不需要访问数据库。为什么它尝试连接并给我错误 can't connect to MySQL server?我只是将数据提交到表单。

我现在所做的是使用空 try/catch

try {
    $Form->handleRequest($request);
} catch (\Doctrine\DBAL\DBALException $e) {
}

if ($Form->isValid()) {
//do something
}

以上内容允许我提交并验证表单。为我尝试验证的每个表单复制 try/catch 代码似乎没有必要。

有什么我遗漏的吗?

这是堆栈跟踪:

自 Doctrine DBAL 2.5(2014 年 12 月发布)以来,对于某些数据库驱动程序,如 MySQL,它会急切地连接到服务器以确定服务器版本。这可能可以被认为是一个错误,并且有一个 open ticket for it, and more background information in this thread.

目前,修复或解决方法是在 app/config/config.yml 的连接配置中指定 MySQL 服务器版本。您应该根据您的 MySQL 服务器指定适当的版本,可能是 5.5 或 5.6。

doctrine:
    dbal:
        connections:
            default:
                # connection parameters ...
                server_version: 5.6