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 走原生不触发弃用告警。
84 lines
2.9 KiB
PHP
84 lines
2.9 KiB
PHP
<?php
|
||
|
||
use Illuminate\Support\Str;
|
||
|
||
return [
|
||
|
||
'default' => env('DB_CONNECTION', 'mysql'),
|
||
|
||
'connections' => [
|
||
|
||
'sqlite' => [
|
||
'driver' => 'sqlite',
|
||
'url' => env('DB_URL'),
|
||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
||
'prefix' => '',
|
||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
||
],
|
||
|
||
'mysql' => [
|
||
'driver' => 'mysql',
|
||
'url' => env('DB_URL'),
|
||
'host' => env('DB_HOST', '127.0.0.1'),
|
||
'port' => env('DB_PORT', '3306'),
|
||
'database' => env('DB_DATABASE', 'forge'),
|
||
'username' => env('DB_USERNAME', 'forge'),
|
||
'password' => env('DB_PASSWORD', ''),
|
||
'unix_socket' => env('DB_SOCKET', ''),
|
||
'charset' => env('DB_CHARSET', 'utf8mb4'),
|
||
// 宝塔 MySQL5.7 不支持 utf8mb4_0900_ai_ci,必须用 utf8mb4_unicode_ci
|
||
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
|
||
'prefix' => '',
|
||
'prefix_indexes' => true,
|
||
'strict' => true,
|
||
'engine' => null,
|
||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
||
// 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'),
|
||
]) : [],
|
||
],
|
||
|
||
'pgsql' => [
|
||
'driver' => 'pgsql',
|
||
'url' => env('DB_URL'),
|
||
'host' => env('DB_HOST', '127.0.0.1'),
|
||
'port' => env('DB_PORT', '5432'),
|
||
'database' => env('DB_DATABASE', 'forge'),
|
||
'username' => env('DB_USERNAME', 'forge'),
|
||
'password' => env('DB_PASSWORD', ''),
|
||
'charset' => env('DB_CHARSET', 'utf8'),
|
||
'prefix' => '',
|
||
'prefix_indexes' => true,
|
||
'search_path' => 'public',
|
||
'sslmode' => 'prefer',
|
||
],
|
||
|
||
],
|
||
|
||
'migrations' => 'migrations',
|
||
|
||
'redis' => [
|
||
'client' => env('REDIS_CLIENT', 'phpredis'),
|
||
'options' => [
|
||
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
||
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
|
||
],
|
||
'default' => [
|
||
'url' => env('REDIS_URL'),
|
||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||
'password' => env('REDIS_PASSWORD'),
|
||
'port' => env('REDIS_PORT', '6379'),
|
||
'database' => env('REDIS_DB', '0'),
|
||
],
|
||
'cache' => [
|
||
'url' => env('REDIS_URL'),
|
||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||
'password' => env('REDIS_PASSWORD'),
|
||
'port' => env('REDIS_PORT', '6379'),
|
||
'database' => env('REDIS_CACHE_DB', '1'),
|
||
],
|
||
],
|
||
|
||
];
|