Symfony 7升级后无法SSL连接Azure MySQL,求正确配置
解决Symfony 7中Azure MySQL SSL连接配置问题
在Symfony 7中,YAML解析器不再支持将!php/const作为数组键使用,这导致你原有的配置语法失效。以下是两种可行的替代配置方式:
方式一:使用PDO常量的数值作为键
PDO::MYSQL_ATTR_SSL_CA对应的常量值为1009,可以直接在配置中使用这个数值作为options的键:
dbal: server_version: '8.0' driver: pdo_mysql url: '%env(resolve:DATABASE_URL)%' options: 1009: '%env(resolve:CA_CERT)%'
方式二:使用PHP配置文件(更直观)
将Doctrine配置改为PHP文件形式(比如config/packages/doctrine.php),这样可以直接使用PHP常量作为键,代码可读性更高:
<?php use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; return static function (ContainerConfigurator $configurator): void { $configurator->extension('doctrine', [ 'dbal' => [ 'server_version' => '8.0', 'driver' => 'pdo_mysql', 'url' => '%env(resolve:DATABASE_URL)%', 'options' => [ PDO::MYSQL_ATTR_SSL_CA => '%env(resolve:CA_CERT)%', ], ], ]); };
两种方式都能让你正常通过SSL连接Azure MySQL数据库,推荐使用第二种方式,避免硬编码常量数值,后期维护更方便。
内容的提问来源于stack exchange,提问作者user3282502
相关产品推荐
相关产品推荐

