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名称上面@AutoControlleruse Hyperf\HttpServer\Annotation\AutoController;即可实现自动注解。自动注解为绝大多数简单的访问场景提供路由绑定支持,使用@AutoController时则 Hyperf 会自动解析所在类的所有 public 方法并提供 GETPOST 两种请求方式

<?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
posted @   Myifb  阅读(109)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示