注解控制器

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

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

例子如下

use EasySwoole\Http\Annotation\Method;

class Test extends \EasySwoole\Http\AbstractInterface\AnnotationController
{
    /**
     * @\EasySwoole\Http\Annotation\Context(key="MYSQL")
     */
    public $mysql;

    /**
     * @var 
     * @\EasySwoole\Http\Annotation\DI(key="IOC")
     */
    public $IOC;

    function index()
    {
        // TODO: Implement index() method.
    }

    /**
     * @Method(allow={GET,POST})
     * @\EasySwoole\Http\Annotation\Param(name="test",from={POST})
     * @\EasySwoole\Http\Annotation\Param(name="msg",alias="消息字段",lengthMax="20|消息过长",required="消息不能为空")
     * @\EasySwoole\Http\Annotation\Param(name="type",inArray="{1,2,3,4}")
     */
    function fuck($test,$msg)
    {
        var_dump($test,$msg);
    }

    protected function onException(\Throwable $throwable): void
    {
        if($throwable instanceof \EasySwoole\Http\Exception\ParamAnnotationValidateError){
            var_dump($throwable->getValidate()->getError()->getErrorRuleMsg());
        }else{
            var_dump($throwable->getMessage());
        }
    }

}

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

0 results matching ""

    No results matching ""