当前位置:   article > 正文

Hyperf 注解及路由_hyperf注解

hyperf注解

由于Hyperf只能运行在Linux和Mac上  所以要用到PHPstrom的ftp上传及下载

1.Hyperf的传统路由定义在app\config\routes.php下的,配置方式和laravel是一样的,这个就不过多的讲解了

2.Hyperf通过注解的方式定义路由(首先我们需要下载phpstrom的IDE注解插件PHP Annotations),在PHPstrom设置的Plugins 中搜索 PHP Annotations,下载重启PHPstrom

@AutoController()  注解会自动根据类名及方法名创建对应的URL 

  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of Hyperf.
  5. *
  6. * @link https://www.hyperf.io
  7. * @document https://doc.hyperf.io
  8. * @contact group@hyperf.io
  9. * @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
  10. */
  11. namespace App\Controller;
  12. use Hyperf\HttpServer\Annotation\AutoController;
  13. /**
  14. * @AutoController(prefix="user")
  15. * prefix参数会重定义类名 使Url自定义
  16. */
  17. class IndexController extends AbstractController
  18. {
  19. public function index()
  20. {
  21. $user = $this->request->input('user', 'Hyperf');
  22. $method = $this->request->getMethod();
  23. return [
  24. 'method' => $method,
  25. 'message' => "Hello {$user}.",
  26. ];
  27. }
  28. }

如果没有加prefix参数的话 url是http://localhost:9501/index/index

如果定义了prefix参数  url就是 http://localhost:9501/user/index

如果类名是IndexDiController这样驼峰式并且没有配prefix参数的话   url是http://localhost:9501/index_di/index

@Controller()  注解

@Controller()注解需要搭配 @RequestMapping()   @GetMapping()  @PutMapping() @PostMapping()等注解来一起使用

  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of Hyperf.
  5. *
  6. * @link https://www.hyperf.io
  7. * @document https://doc.hyperf.io
  8. * @contact group@hyperf.io
  9. * @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
  10. */
  11. namespace App\Controller;
  12. use Hyperf\HttpServer\Annotation\AutoController;
  13. use Hyperf\HttpServer\Annotation\Controller;
  14. use Hyperf\HttpServer\Annotation\RequestMapping;
  15. /**
  16. * @Controller(prefix="index")
  17. */
  18. class IndexController extends AbstractController
  19. {
  20. /**
  21. * @RequestMapping(path="index", methods={"get","post"})
  22. * #path规定了路由里对应该方法的名称,methods则规定了访问的方式
  23. * 注意参数要带引号而且必须是双引号
  24. */
  25. public function index()
  26. {
  27. $user = $this->request->input('user', 'Hyperf');
  28. $method = $this->request->getMethod();
  29. return [
  30. 'method' => $method,
  31. 'message' => "Hello {$user}.",
  32. ];
  33. }
  34. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/548784
推荐阅读
相关标签
  

闽ICP备14008679号