Symfony学说:检查与数据库的连接

Symfony Doctrine: check connection to a database

提问人:Pierre 提问时间:10/13/2023 更新时间:10/13/2023 访问量:107

问:

有一段时间,检查与控制器中数据库的连接工作正常,执行以下操作:

$em->getConnection()->connect();
$connected = $em->getConnection()->isConnected();

但我现在有一个弃用:

php.INFO:用户已弃用:不推荐使用 Connection::connect() 的公共访问权限。

我现在应该如何测试我的数据库连接?

PHP Symfony 学说 php-8 symfony6

评论

0赞 ADyson 10/13/2023
弃用不是错误。这只是一个警告,这将在软件的未来版本中成为错误。您的代码应该仍然有效。
0赞 Pierre 10/13/2023
@ADyson 是的,我知道这一点,我想摆脱这种弃用:)
0赞 ADyson 10/13/2023
好吧,您可以关闭弃用警告(我真的不建议这样做,因为您会忘记它们!),或者让它只出现在日志文件中。或者是的,您可以更改代码。在大多数情况下,弃用消息应该建议另一种方法,但这种方法没有。我个人对symfony还不够熟悉,无法建议你应该做什么。symfony文档中是否有任何关于connect()函数的内容?
0赞 Pierre 10/13/2023
@ADyson 不幸的是,我还没有在文档中找到任何内容。
0赞 Pierre 10/13/2023
让我们看看 getWrappedConnection 而不是 connect 是否有效。

答:

1赞 Dylan KAS 10/13/2023 #1

现在,在库外使用连接时,有一个弃用通知:

Deprecation::triggerIfCalledFromOutside(
            'doctrine/dbal',
            'https://github.com/doctrine/dbal/issues/4966',
            'Public access to Connection::connect() is deprecated.',
        );

您需要改用(它来自同一个 Connection 类getNativeConnection())

$em->getNativeConnection()->isConnected();

您可以阅读包含这些更改的 PR。