游戏SDK平台 — 基于 ThinkPHP 5.0 的多模块应用,涵盖游戏渠道SDK对接、支付回调、公会管理和官网。PHP 7.0–7.2。
仓库根目录 (D:\web\composer\new_sdk\new_sdk) 只有 www/,所有应用代码在 www/new_sdk/ 下。以下路径均相对于 www/new_sdk/。
多模块 ThinkPHP 应用,通过域名路由将子域名映射到模块(application/route.php):
| 子域名前缀 | 模块 | 用途 |
|---|---|---|
admin |
admin/ |
后台管理 |
sdkapi / t |
api/ |
支付回调 + SDK API |
cpsapi / sdkcpsapi |
guildapi/ |
公会API |
mcpsapi |
mcpsapi/ |
MCPS API |
jhgame |
complex/ |
渠道SDK对接 |
www |
home/ |
官网 (PC) |
m |
mobile/ |
手机端 |
核心目录:
application/common/ — 共享代码:model/(151个模型)、logic/、library/、controller/Base.phpapplication/service/ — 顶层服务类(PayService、GamePayService 等)application/crontab/ — 定时任务,注册在 application/command.php,通过 php think <command> 调用application/extra/ — 扩展配置:queue.php(Redis队列)、kafka.php、operatelog.phpextend/ — 第三方SDK:alipay、alipay_wap、DouYinGameOpen、LdzfPay、XiTaiYouPay、Obs(华为)、treepublic/ — Web根目录,入口文件 index.phpthink — CLI入口(类似 artisan)public/index.php — 加载 constants.php → constants/<APP_STATUS>.php → thinkphp/start.phpthink — 加载 public/constants.php → public/constants/<APP_STATUS>.php → thinkphp/console.php环境变量通过 .env_dev / .env_pro 文件加载(ThinkPHP 的 Env::get())。APP_STATUS 常量(dev、stable 或默认值)决定使用哪个环境文件和路由配置。
仓库中缺失:public/constants.php 和 public/constants/*.php — 定义 APP_STATUS 等平台常量,属于部署配置,已 gitignore。
# 安装依赖
composer install
# 如果系统没有 composer,可以用仓库中已提交的 composer.phar
php composer.phar install
# 运行定时任务(注册在 application/command.php)
php think <CommandName>
# 示例:
php think PolyChannelFlowStats
php think ChannelSettleMonth
php think AutoPackage
# PHPUnit(tests/ 目录目前不存在)
vendor/bin/phpunit
没有配置 lint、typecheck 或 codegen 命令,没有 CI 工作流。
app\ 命名空间映射到 application/(composer.json)application/common/model/ 下使用 ThinkPHP 约定(如 app\common\model\Members)controller/、model/、validate/、view/ 目录config.php;扩展配置在 application/extra/application/extra/queue.php),使用 db select 3application/extra/kafka.php、application/command/KafkaConsumer.php)public/index.php 中完全开放(Access-Control-Allow-Origin: *)extend/alipay/、extend/alipay_wap/)application/common/library/WeixinPay.php)extend/DouYinGameOpen/)application/common/logic/Websocket.php)本仓库是五个仓库之一,其余不在本目录内:
new_sdk_cps-admin — CPS后台new_sdk_cps-py — CPS打包(Python,被 application/common/logic/SubPackage.php 引用)new_sdk_ws — 通知服务(WebSocket)new_sdk_go — Excel导出 & 游戏礼包发放(Go,被 application/common/library/MakeReportGo.php 引用)public/constants.php 和 public/constants/*.php 已 gitignore — 没有它们应用无法启动,需要为你的环境创建。application/common.php 约2000行全局辅助函数(auth_code、curl_post 等)— 所有模块都在用。.env_dev 和 .env_pro 包含真实凭据。.gitignore 列的是 .env,但这两个文件名不在其中。composer.phar 已提交到仓库 — 系统没有 composer 时可以直接用。phpunit.xml 引用的 tests/ 目录在仓库中不存在。application/service/ 中有 _bak 文件(GamePayService_bak.php、MemberCoinService_bak.php)。php think 命令 — 不要运行仓库内的任何 php think <command>。涉及定时任务、队列消费、数据迁移等操作一律禁止。需要调试或了解某命令行为时,只能阅读源码,不可实际执行。