当前位置: 首页 > news >正文

ThinkPHP 根据路由文件获取路由列表

定义一个路由变量

比如我们要获取admin的路由

$routeFile = "admin.php";

清除路由

调用 Route::clear() 方法,清除当前已定义的所有路由。

Route::clear();

设置路由懒加载

调用 Route::lazy(false) 方法,禁用路由的懒加载功能,选择立即加载。

Route::lazy(false);

路由文件路径

$path = root_path() . 'route' . DIRECTORY_SEPARATOR;

引入路由文件

使用 include 语句包含指定的路由文件,执行其中的路由定义。

include $path . $routeFile;

获取路由规则列表

调用 Route::getRuleList() 方法,获取当前定义的所有路由规则列表。

$rules = Route::getRuleList();

过滤闭包路由(可选)

使用 array_filter 函数过滤掉路由规则中 route 为闭包(Closure)的项,返回非闭包的路由规则数组。

$list = array_filter($rules, function ($rule) {return !($rule['route'] instanceof \Closure);
});
dump($list);

封装函数

    function getRotes($routeFile,$dir = null){if (str_contains($routeFile, '.php')) { //检查文件是否php文件Route::clear();Route::lazy(false);$path = root_path() . ($dir ? 'app' . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR : '') . 'route' . DIRECTORY_SEPARATOR;include $path . $routeFile;$rules = Route::getRuleList();return array_filter($rules, function ($rule){ //可选,过滤掉闭包路由return !($rule['route'] instanceof \Closure); //也可以设置其它过滤条件// || str_contains($rule['route'], 'admin') //比如判断路由是否包含'admin'// || str_starts_with($rule['route'], 'admin'); //或者判断是否是admin开头 });}return [];}$list=getRotes('admin.php');dump($list);

相关文章:

  • JS 应用安全案例泄漏云配置接口调试代码逻辑框架漏洞自检
  • 短剧小程序开发:开启影视娱乐新纪元
  • Python Day28 学习
  • C++通过空间配置器实现简易String类
  • 结构体对齐规则与优化
  • 6.4重建大师空三优化参数设置
  • ThreadPoolTaskExecutor 和 ThreadPoolExecutor 的使用场景
  • Nginx 核心功能与 LNMP 环境搭建深度笔记
  • 详细介绍Qwen3技术报告中提到的模型架构技术
  • 流式优先架构:彻底改变实时数据处理
  • 论文篇-1.3.如何整理一篇论文
  • 微 PE , USM 魔术师两款 PE 对比
  • C语言判断素数(附带源码和解析)
  • CNN手写数字识别/全套源码+注释可直接运行
  • day 32
  • 【笔记】排查并解决Error in LLM call after 3 attempts: (status code: 502)
  • el-radio-group 与 el-dropdown 一起使用时的注意事项
  • VPX3U规格主板的架构实现与性能评估:飞腾D3000+景嘉微JH930平台
  • 网络:如何通过已知的电脑的机器名(计算机名),获取ip地址
  • Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
  • 刷题网站建设/百度推广一级代理商名单