Hyperf - 自动注解
Hyperf 提供了极其强大和方便灵活的 注解 功能,在路由的定义上也毫无疑问地提供了注解定义的方式,Hyperf 提供了 #[Controller] 和 #[AutoController] 两种注解来定义一个 Controller
详情查看官方文档
注:
- 在shell中使用
php bin/hyperf.php describe:routes
即可查看项目路由列表- PHP 8.0及以上版本:在PHP
8.0
及以上版本中,你可以使用属性语法(#[AutoController]
)- PHP 7.x版本:在PHP
7.x
版本中,你需要使用传统的注解语法(@AutoController
)- 仅控制器类中的公共(
public
)方法会生成路由规则,protected
以及private
不会
在Controller名称上面@AutoController
并use Hyperf\HttpServer\Annotation\AutoController;
即可实现自动注解。自动注解为绝大多数简单的访问场景提供路由绑定支持,使用@AutoController
时则 Hyperf 会自动解析所在类的所有 public
方法并提供 GET
和 POST
两种请求方式
<?php
declare(strict_types=1);
namespace App\Adminv1\Controller;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\HttpServer\Annotation\AutoController;
/**
* @AutoController()
*/
class UserController
{
public function test(RequestInterface $request)
{
$user = $request->input('user', 'Hyperf');
$method = $request->getMethod();
return [
'method' => $method,
'message' => "Hello {$user}.嘿嘿嘿",
];
}
}
驼峰命名的控制器,会自动转化为蛇形路由,以下为控制器与实际路由的对应关系示例:
控制器 | 注解 | 访问路由 |
---|---|---|
MyDataController | @AutoController() | /my_data/index |
MydataController | @AutoController() | /mydata/index |
MyDataController | @AutoController(prefix="/admin/data") | /admin/data/index |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!