title: Easyswoole 注解控制器 meta:

  • name: description content: Easyswoole 提供轻量级的注解控制器支持
  • name: keywords content: swoole|swoole 拓展|swoole 框架|EasySwoole|注解控制器|注解参数验证|swoole 注解

注解控制器

Easyswoole 提供轻量级的注解控制器支持。注解控制器在未添加注解项的时候,逻辑与普通控制器逻辑一致。

::: warning 本功能处于灰度测试中,想体验的同学可以在composer 中添require 配置项 "easyswoole/http": "master-dev as 1.3.0"并执行composer up进行安装。 :::

例子如下

  1. use EasySwoole\Http\Annotation\Method;
  2. class Test extends \EasySwoole\Http\AbstractInterface\AnnotationController
  3. {
  4. /**
  5. * @\EasySwoole\Http\Annotation\Context(key="MYSQL")
  6. */
  7. public $mysql;
  8. /**
  9. * @var
  10. * @\EasySwoole\Http\Annotation\DI(key="IOC")
  11. */
  12. public $IOC;
  13. function index()
  14. {
  15. // TODO: Implement index() method.
  16. }
  17. /**
  18. * @Method(allow={GET,POST})
  19. * @\EasySwoole\Http\Annotation\Param(name="test",from={POST})
  20. * @\EasySwoole\Http\Annotation\Param(name="msg",alias="消息字段",lengthMax="20|消息过长",required="消息不能为空")
  21. * @\EasySwoole\Http\Annotation\Param(name="type",inArray="{1,2,3,4}")
  22. */
  23. function fuck($test,$msg)
  24. {
  25. var_dump($test,$msg);
  26. }
  27. protected function onException(\Throwable $throwable): void
  28. {
  29. if($throwable instanceof \EasySwoole\Http\Exception\ParamAnnotationValidateError){
  30. var_dump($throwable->getValidate()->getError()->getErrorRuleMsg());
  31. }else{
  32. var_dump($throwable->getMessage());
  33. }
  34. }
  35. }

::: warning Param注解支持的校验方法与Easyswoole自带的参数校验器一致,注解格式请见 annotation :::