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

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);

http://www.xdnf.cn/news/7855.html

相关文章:

  • Python60日基础学习打卡D32
  • 如何使用两块硬盘作为 Ubuntu24 的系统盘,实现坏掉一块不影响系统运行。
  • 变电站综合自动化系统
  • 多技术栈 iOS 项目的性能调试实战:从 Flutter 到 Unity(含 KeyMob 工具实测)
  • WPF MVVM Community Toolkit. Mvvm 社区框架
  • 万物智联,重塑未来:鸿蒙操作系统的实战突破与生态崛起
  • 8 种快速易用的Python Matplotlib数据可视化方法
  • 大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置
  • Azure 应用服务中的异常处理、日志记录和通知:综合指南
  • symbol【ES6】
  • JAVA SE 多线程(下)
  • Access链接Azure SQL
  • 阿里云ecs 8核 16G 内存 装有redis6 分配了3G内存,和2个tomcat 每个tomcat 4G 服务器反应迟钝,如何确认不是redis的问题
  • C++之内存分配new与 delete
  • React--函数组件和类组件
  • DL00987-基于深度学习YOLOv11的红外鸟类目标检测含完整数据集
  • 鸿蒙UI开发——实现一个上拉抽屉效果
  • SQL数据处理流程
  • 使用zap,对web应用/API接口 做安全检测
  • VPX3U规格主板的架构实现与性能评估:飞腾D3000+景嘉微JH930平台
  • 《算法笔记》11.8小节——动态规划专题->总结 问题 G: 点菜问题
  • 域名与DNS详解
  • 操作系统————FCFS(先来先服务),优先级调度,SJF(短作业优先调度),RR(时间片轮转调度)四大算法的c++代码实现
  • NGINX常用功能—笔记
  • MyBatis指定构造
  • 【JVM】学习笔记
  • APM32小系统键盘PCB原理图设计详解
  • Webpack 分包策略详解及实现
  • LangGraph(五)——自定义状态
  • 深入剖析原型模式:原理、实现与应用实践