config mcp.enable=false(覆盖 403 分支; * mcp.enable 在控制器内经 config() 读取,e2e 期望它默认 true, * 又不能从 PHPUnit 进程改另一个进程的 Config,故由本入口代劳)。 * * 自请求并发说明:tools/call 分发会从本服务回环 POST /admin/*(McpDispatchBase), * php -S 默认单 worker 会死锁,必须 PHP_CLI_SERVER_WORKERS>1(Linux,PHP>=7.4)。 */ declare(strict_types=1); // 复用 PHPUnit 引导:autoload + App 初始化 + config 级覆盖到测试库 + 非 test 库护栏。 // bootstrap.php 是无 PHPUnit 依赖的纯脚本(抛 RuntimeException 拒绝非测试库), // 这里 require 后 $app 即已就绪的容器实例。 require __DIR__ . '/bootstrap.php'; // 403 分支模拟(仅测试头,见文件头注释) if (($_SERVER['HTTP_X_E2E_MCP_DISABLED'] ?? '') === '1') { \think\facade\Config::set(['enable' => false], 'mcp'); } // 标准 HTTP 内核(与 public/index.php 同构;initialize 幂等,config 覆盖不会被冲掉) $http = $app->http; $response = $http->run(); $response->send(); $http->end($response);