hyperf 默认使用注解驱动路由,需在 annotations.php 中配置扫描路径并确保核心注解未被忽略;控制器方法添加 @getmapping、@postmapping 等注解即可自动绑定路径与http方法;支持类/方法级中间件及 @autocontroller 设置前缀;通过 route:list 命令验证路由,修改后需清缓存或重启。

Hyperf 的路由配置其实不难,关键在于理解它的分层结构和注解驱动方式。默认使用 AnnotationRoute,靠 PHP 注解自动注册路由,不用手写配置文件。
启用注解扫描与路由自动加载
确保 config/autoload/annotations.php 中已开启扫描路径:
- 确认
scan→paths包含你的控制器目录(如app/Controller) - 检查
scan→ignore_annotations没误删GetMapping、PostMapping等核心注解 - 首次使用需运行
php bin/hyperf.php gen:controller App/Controller/IndexController生成示例,再加注解测试
在控制器中定义 RESTful 路由
直接在 Controller 方法上加注解,Hyperf 会自动绑定 HTTP 方法和路径:
-
@GetMapping("/api/user")→ GET 请求映射到该方法 -
@PostMapping("/api/user")→ POST 请求,支持 JSON 自动解析为对象 -
@RequestMapping(path="/api/v1/{id}", methods={"GET","PUT"})→ 多方法复用同一路径,{id}自动注入参数
设置中间件与分组前缀
路由可按需附加中间件或统一前缀,提升组织性:
- 类级注解
@Middleware(AuthMiddleware::class)应用于整个 Controller - 方法级注解
@Middleware(PermissionMiddleware::class)只作用于当前接口 - 使用
@AutoController(prefix="/admin")替代@Controller,所有方法自动加上/admin前缀
验证路由是否生效
别只靠浏览器刷新,用命令行快速确认:
- 执行
php bin/hyperf.php route:list查看全部已注册路由(含方法、路径、中间件、处理器) - 若列表为空,优先检查
annotations.php扫描路径是否正确、PHP 文件后缀是否为.php、注解拼写是否大小写准确 - 修改注解后需重启服务或清缓存:
php bin/hyperf.php clear:cache
注解路由是 Hyperf 的默认推荐方式,简洁且类型安全。只要路径扫描开对、注解写对、缓存清干净,90% 的路由问题都能当场解决。











