mirror of
https://gitee.com/technical-laohu/mpay_v2_webman.git
synced 2026-04-22 10:04:27 +08:00
更新基础架构
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
use support\Request;
|
||||
|
||||
return [
|
||||
'debug' => true,
|
||||
'debug' => getenv('APP_DEBUG') ?? true,
|
||||
'error_reporting' => E_ALL,
|
||||
'default_timezone' => 'Asia/Shanghai',
|
||||
'request_class' => Request::class,
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
return [
|
||||
'files' => [
|
||||
base_path() . '/app/functions.php',
|
||||
base_path() . '/support/functions.php',
|
||||
base_path() . '/support/Request.php',
|
||||
base_path() . '/support/Response.php',
|
||||
]
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
*/
|
||||
|
||||
return [
|
||||
'default' => 'file',
|
||||
'default' => getenv('CACHE_DRIVER') ?? 'file',
|
||||
'stores' => [
|
||||
'file' => [
|
||||
'driver' => 'file',
|
||||
|
||||
@@ -1,84 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* MPay V2 支付系统 - 数据库配置
|
||||
* 基于webman标准配置格式,支持MySQL 5.7+
|
||||
*
|
||||
* 配置说明:
|
||||
* - 字符集:utf8mb4(支持完整的UTF-8字符集,包括emoji)
|
||||
* - 排序规则:utf8mb4_unicode_ci(Unicode标准排序)
|
||||
* - 连接池:支持连接池管理,提高性能(仅支持swoole/swow驱动)
|
||||
* - 读写分离:支持主从数据库配置
|
||||
*/
|
||||
|
||||
return [
|
||||
// 默认数据库连接
|
||||
'default' => env('DB_CONNECTION', 'mysql'),
|
||||
|
||||
// 数据库连接配置
|
||||
return [
|
||||
'default' => getenv('DB_CONNECTION') ?? 'mysql',
|
||||
'connections' => [
|
||||
// 主数据库配置
|
||||
'mysql' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST', '192.168.31.200'),
|
||||
'port' => env('DB_PORT', 3306),
|
||||
'database' => env('DB_DATABASE', 'mpay_v2'),
|
||||
'username' => env('DB_USERNAME', 'mpay_v2'),
|
||||
'password' => env('DB_PASSWORD', 'pXfNWELALrwAAt88'),
|
||||
'unix_socket' => '',
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => env('DB_PREFIX', ''),
|
||||
'strict' => true,
|
||||
'engine' => 'InnoDB',
|
||||
'pool' => [
|
||||
'max_connections' => env('DB_POOL_MAX_CONNECTIONS', 20),
|
||||
'min_connections' => env('DB_POOL_MIN_CONNECTIONS', 3),
|
||||
'wait_timeout' => env('DB_POOL_WAIT_TIMEOUT', 3),
|
||||
'idle_timeout' => env('DB_POOL_IDLE_TIMEOUT', 60),
|
||||
'heartbeat_interval' => env('DB_POOL_HEARTBEAT_INTERVAL', 50),
|
||||
'driver' => getenv('DB_DRIVER') ?? 'mysql',
|
||||
'host' => getenv('DB_HOST') ?? '127.0.0.1',
|
||||
'port' => getenv('DB_PORT') ?? '3306',
|
||||
'database' => getenv('DB_DATABASE') ?? '',
|
||||
'username' => getenv('DB_USERNAME') ?? '',
|
||||
'password' => getenv('DB_PASSWORD') ?? '',
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_general_ci',
|
||||
'prefix' => getenv('DB_PREFIX') ?? '',
|
||||
'strict' => true,
|
||||
'engine' => null,
|
||||
'options' => [
|
||||
PDO::ATTR_EMULATE_PREPARES => false, // Must be false for Swoole and Swow drivers.
|
||||
],
|
||||
],
|
||||
|
||||
// 读库配置(主从分离)
|
||||
'mysql_read' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_READ_HOST', env('DB_HOST', '192.168.31.200')),
|
||||
'port' => env('DB_READ_PORT', env('DB_PORT', 3306)),
|
||||
'database' => env('DB_READ_DATABASE', env('DB_DATABASE', 'mpay_v2')),
|
||||
'username' => env('DB_READ_USERNAME', env('DB_USERNAME', 'mpay_v2')),
|
||||
'password' => env('DB_READ_PASSWORD', env('DB_PASSWORD', 'pXfNWELALrwAAt88')),
|
||||
'unix_socket' => '',
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => env('DB_PREFIX', ''),
|
||||
'strict' => true,
|
||||
'engine' => 'InnoDB',
|
||||
'pool' => [
|
||||
'max_connections' => 15,
|
||||
'min_connections' => 2,
|
||||
'wait_timeout' => 3,
|
||||
'idle_timeout' => 60,
|
||||
'heartbeat_interval' => 50,
|
||||
],
|
||||
],
|
||||
|
||||
// 写库配置(主从分离)
|
||||
'mysql_write' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_WRITE_HOST', env('DB_HOST', '192.168.31.200')),
|
||||
'port' => env('DB_WRITE_PORT', env('DB_PORT', 3306)),
|
||||
'database' => env('DB_WRITE_DATABASE', env('DB_DATABASE', 'mpay_v2')),
|
||||
'username' => env('DB_WRITE_USERNAME', env('DB_USERNAME', 'mpay_v2')),
|
||||
'password' => env('DB_WRITE_PASSWORD', env('DB_PASSWORD', 'pXfNWELALrwAAt88')),
|
||||
'unix_socket' => '',
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_unicode_ci',
|
||||
'prefix' => env('DB_PREFIX', ''),
|
||||
'strict' => true,
|
||||
'engine' => 'InnoDB',
|
||||
'pool' => [
|
||||
'max_connections' => 10,
|
||||
'min_connections' => 2,
|
||||
'max_connections' => 5,
|
||||
'min_connections' => 1,
|
||||
'wait_timeout' => 3,
|
||||
'idle_timeout' => 60,
|
||||
'heartbeat_interval' => 50,
|
||||
|
||||
12
config/jwt.php
Normal file
12
config/jwt.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// JWT 密钥,生产环境建议从 .env 读取
|
||||
'secret' => getenv('JWT_SECRET') ?: 'mpay-secret',
|
||||
// 过期时间(秒)
|
||||
'ttl' => (int)(getenv('JWT_TTL') ?: 7200),
|
||||
// 签名算法
|
||||
'alg' => getenv('JWT_ALG') ?: 'HS256',
|
||||
];
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
@@ -12,4 +13,9 @@
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
|
||||
return [];
|
||||
return [
|
||||
// 超全局中间件-覆盖插件
|
||||
'@' => [
|
||||
app\common\middleware\Cors::class, //跨域中间件
|
||||
],
|
||||
];
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* MPay V2 支付系统 - Redis配置
|
||||
* Redis 6.0+ 缓存和队列配置
|
||||
@@ -7,91 +8,16 @@
|
||||
return [
|
||||
// 默认Redis连接
|
||||
'default' => [
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', ''),
|
||||
'port' => env('REDIS_PORT', 6379),
|
||||
'database' => env('REDIS_DATABASE', 0),
|
||||
'host' => getenv('REDIS_HOST') ?? '127.0.0.1',
|
||||
'password' => getenv('REDIS_PASSWORD') ?? '',
|
||||
'port' => getenv('REDIS_PORT') ?? 6379,
|
||||
'database' => getenv('REDIS_DATABASE') ?? 0,
|
||||
'pool' => [
|
||||
'max_connections' => env('REDIS_POOL_MAX_CONNECTIONS', 20),
|
||||
'min_connections' => env('REDIS_POOL_MIN_CONNECTIONS', 5),
|
||||
'wait_timeout' => env('REDIS_POOL_WAIT_TIMEOUT', 3),
|
||||
'idle_timeout' => env('REDIS_POOL_IDLE_TIMEOUT', 60),
|
||||
'heartbeat_interval' => env('REDIS_POOL_HEARTBEAT_INTERVAL', 50),
|
||||
],
|
||||
'options' => [
|
||||
'prefix' => env('CACHE_PREFIX', 'mpay_v2_'),
|
||||
],
|
||||
],
|
||||
|
||||
// 缓存专用Redis连接
|
||||
'cache' => [
|
||||
'host' => env('REDIS_CACHE_HOST', env('REDIS_HOST', '127.0.0.1')),
|
||||
'password' => env('REDIS_CACHE_PASSWORD', env('REDIS_PASSWORD', '')),
|
||||
'port' => env('REDIS_CACHE_PORT', env('REDIS_PORT', 6379)),
|
||||
'database' => env('REDIS_CACHE_DATABASE', 1),
|
||||
'pool' => [
|
||||
'max_connections' => 15,
|
||||
'min_connections' => 3,
|
||||
'max_connections' => 20,
|
||||
'min_connections' => 5,
|
||||
'wait_timeout' => 3,
|
||||
'idle_timeout' => 60,
|
||||
'heartbeat_interval' => 50,
|
||||
],
|
||||
'options' => [
|
||||
'prefix' => env('CACHE_PREFIX', 'mpay_v2_cache_'),
|
||||
],
|
||||
],
|
||||
|
||||
// 队列专用Redis连接
|
||||
'queue' => [
|
||||
'host' => env('REDIS_QUEUE_HOST', env('REDIS_HOST', '127.0.0.1')),
|
||||
'password' => env('REDIS_QUEUE_PASSWORD', env('REDIS_PASSWORD', '')),
|
||||
'port' => env('REDIS_QUEUE_PORT', env('REDIS_PORT', 6379)),
|
||||
'database' => env('REDIS_QUEUE_DATABASE', 2),
|
||||
'pool' => [
|
||||
'max_connections' => 10,
|
||||
'min_connections' => 2,
|
||||
'wait_timeout' => 3,
|
||||
'idle_timeout' => 60,
|
||||
'heartbeat_interval' => 50,
|
||||
],
|
||||
'options' => [
|
||||
'prefix' => env('QUEUE_PREFIX', 'mpay_v2_queue_'),
|
||||
],
|
||||
],
|
||||
|
||||
// 会话存储Redis连接
|
||||
'session' => [
|
||||
'host' => env('REDIS_SESSION_HOST', env('REDIS_HOST', '127.0.0.1')),
|
||||
'password' => env('REDIS_SESSION_PASSWORD', env('REDIS_PASSWORD', '')),
|
||||
'port' => env('REDIS_SESSION_PORT', env('REDIS_PORT', 6379)),
|
||||
'database' => env('REDIS_SESSION_DATABASE', 3),
|
||||
'pool' => [
|
||||
'max_connections' => 10,
|
||||
'min_connections' => 2,
|
||||
'wait_timeout' => 3,
|
||||
'idle_timeout' => 60,
|
||||
'heartbeat_interval' => 50,
|
||||
],
|
||||
'options' => [
|
||||
'prefix' => 'mpay_v2_session_',
|
||||
],
|
||||
],
|
||||
|
||||
// JWT黑名单Redis连接
|
||||
'jwt_blacklist' => [
|
||||
'host' => env('REDIS_JWT_HOST', env('REDIS_HOST', '127.0.0.1')),
|
||||
'password' => env('REDIS_JWT_PASSWORD', env('REDIS_PASSWORD', '')),
|
||||
'port' => env('REDIS_JWT_PORT', env('REDIS_PORT', 6379)),
|
||||
'database' => env('REDIS_JWT_DATABASE', 4),
|
||||
'pool' => [
|
||||
'max_connections' => 5,
|
||||
'min_connections' => 1,
|
||||
'wait_timeout' => 3,
|
||||
'idle_timeout' => 60,
|
||||
'heartbeat_interval' => 50,
|
||||
],
|
||||
'options' => [
|
||||
'prefix' => 'mpay_v2_jwt_blacklist_',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
@@ -13,9 +14,31 @@
|
||||
*/
|
||||
|
||||
use Webman\Route;
|
||||
use support\Response;
|
||||
use support\Request;
|
||||
|
||||
// 管理后台路由
|
||||
require_once base_path() . '/app/routes/admin.php';
|
||||
|
||||
|
||||
|
||||
// 默认路由兜底
|
||||
Route::fallback(function (Request $request) {
|
||||
// 处理预检请求
|
||||
if (strtoupper($request->method()) === 'OPTIONS') {
|
||||
$response = response('', 204);
|
||||
$response->withHeaders([
|
||||
'Access-Control-Allow-Credentials' => 'true',
|
||||
'Access-Control-Max-Age' => '86400',
|
||||
'Access-Control-Allow-Origin' => $request->header('origin', '*'),
|
||||
'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'),
|
||||
'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'),
|
||||
]);
|
||||
return $response;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 关闭默认路由
|
||||
*/
|
||||
Route::disableDefaultRoute();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of webman.
|
||||
*
|
||||
@@ -18,6 +19,6 @@
|
||||
return [
|
||||
'enable' => true,
|
||||
'middleware' => [ // Static file Middleware
|
||||
//app\middleware\StaticFile::class,
|
||||
app\common\middleware\StaticFile::class,
|
||||
],
|
||||
];
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user