37 行
982 B
PHP
37 行
982 B
PHP
<?php
|
||
|
||
namespace app\common\behavior;
|
||
|
||
use think\Route;
|
||
|
||
/**
|
||
* 业务路由强制导入(app_init 行为)
|
||
*
|
||
* 背景:线上环境中,框架 App::routeCheck() 对 application/route.php 的导入
|
||
* 在部分请求中未生效(经插桩确认:同一请求内 registerRules 未执行或
|
||
* 注册结果不可见于 Route::check),导致 /api/v1/** 全部落到默认
|
||
* 模块/控制器解析从而 404。
|
||
*
|
||
* 方案:在 app_init 阶段(早于路由检测)自行导入一次路由表,
|
||
* 与框架自身的导入互为幂等(同一 key 覆盖注册)。
|
||
*/
|
||
class FcRoute
|
||
{
|
||
public function run(&$params)
|
||
{
|
||
static $done = false;
|
||
if ($done) {
|
||
return;
|
||
}
|
||
$done = true;
|
||
|
||
$file = APP_PATH . 'route.php';
|
||
if (is_file($file)) {
|
||
$rules = include $file;
|
||
if (is_array($rules)) {
|
||
Route::import($rules);
|
||
}
|
||
}
|
||
}
|
||
}
|