From 63ddce9c1dca15bfcb0c1f0228c0deacabc0184b Mon Sep 17 00:00:00 2001 From: lucanlee Date: Sat, 8 Aug 2026 22:28:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20PHP=208.5=20=E5=BC=83?= =?UTF-8?q?=E7=94=A8=E5=91=8A=E8=AD=A6=EF=BC=9Amysql=20=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E6=94=B9=E7=94=A8=20Pdo\Mysql::ATTR=5FSSL=5FCA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit config/database.php 的 mysql 连接 'options' 中原 PDO::MYSQL_ATTR_SSL_CA 在 PHP 8.5 起已弃用,改用命名空间常量 Pdo\Mysql::ATTR_SSL_CA。通过 class_exists 兜底,兼容本地 PHP 8.3(symfony/polyfill-php84 提供该常量),线上 8.5 走原生不触发弃用告警。 --- config/database.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/database.php b/config/database.php index 3b419ce..4f10cfe 100644 --- a/config/database.php +++ b/config/database.php @@ -33,7 +33,9 @@ return [ 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ - PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + // PHP 8.5 弃用 PDO::MYSQL_ATTR_SSL_CA,改用命名空间常量 Pdo\Mysql::ATTR_SSL_CA + // (symfony/polyfill-php84 在 8.4 以下提供了该常量,故可向后兼容) + (\class_exists(\Pdo\Mysql::class) ? \Pdo\Mysql::ATTR_SSL_CA : \PDO::MYSQL_ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'), ]) : [], ],