diff --git a/convention.php b/convention.php index d9003ca6..faf7571b 100644 --- a/convention.php +++ b/convention.php @@ -81,6 +81,8 @@ return [ 'url_param_type' => 0, // 是否开启路由 'url_route_on' => true, + // 路由配置文件(支持配置多个) + 'route_config_file' => ['route'], // 是否强制使用路由 'url_route_must' => false, // 域名部署 diff --git a/library/think/App.php b/library/think/App.php index 1d272ac3..c52c0ff7 100644 --- a/library/think/App.php +++ b/library/think/App.php @@ -483,13 +483,19 @@ class App if (is_array($rules)) { Route::rules($rules); } - } elseif (is_file(CONF_PATH . 'route' . CONF_EXT)) { - // 导入路由配置 - $rules = include CONF_PATH . 'route' . CONF_EXT; - if (is_array($rules)) { - Route::import($rules); + } else { + $files = $config['route_config_file']; + foreach ($files as $file) { + if (is_file(CONF_PATH . $file . CONF_EXT)) { + // 导入路由配置 + $rules = include CONF_PATH . $file . CONF_EXT; + if (is_array($rules)) { + Route::import($rules); + } + } } } + // 路由检测(根据路由定义返回不同的URL调度) $result = Route::check($request, $path, $depr, $config['url_domain_deploy']); $must = !is_null(self::$routeMust) ? self::$routeMust : $config['url_route_must']; diff --git a/library/think/console/command/optimize/Route.php b/library/think/console/command/optimize/Route.php index 2d879b69..31921beb 100644 --- a/library/think/console/command/optimize/Route.php +++ b/library/think/console/command/optimize/Route.php @@ -33,9 +33,14 @@ class Route extends Command protected function buildRouteCache() { - $config = include CONF_PATH . 'route' . CONF_EXT; - if ($config) { - \think\Route::import($config); + $files = \think\Config::get('route_config_file'); + foreach ($files as $file) { + if (is_file(CONF_PATH . $file . CONF_EXT)) { + $config = include CONF_PATH . $file . CONF_EXT; + if ($config) { + \think\Route::import($config); + } + } } $rules = \think\Route::rules(true); array_walk_recursive($rules, [$this, 'buildClosure']);