cxx/param-inject

1.0.10 2021-12-21 07:25 UTC

This package is auto-updated.

Last update: 2024-09-21 13:39:39 UTC


README

使用依赖注入提供请求参数注入功能,可更直观地处理客户端数据

安装

Thinkphp >= 6.0

Laravel >= 5.0

composer require cxx/param-inject

启动

  1. 添加服务(支持tp和laravel)

    服务使用方式请查看官方文档(Thinkphp, Laravel)

    Thinkphp:Cxx\ParamInject\ThinkParamService

    Laravel:Cxx\ParamInject\LaravelParamService

  2. 创建参数类(命名空间随意,只要能被加载)

    use Cxx\ParamInject\Param;
    
    /**
     * 参数类(所有参数类都需要继承 Cxx\ParamInject\Param)
     */
    class Test extends Param
    {
        // 属性访问性必须是 public
        /**
         * @var int
         */
        public $page = 1;
    
        // 注释规则必须要有 @var 后面跟属性类型
        /**
         * @var int
         */
        public $limit = 10;
        
        // 也可以写在行内
        /** @var int */
        public $limit = 10;
        
        // 不带默认值,均为 null
        /** @var int */
        public $limit;
    }
  3. 使用

    控制器中

    // 注意方法参数类型
    public function index(Test $test)
    {
        dd($test);
    }

    在路由闭包中也类似

    // 注意匿名函数参数类型
    Route::post('/test', function (Test $test) {
       dd($test);
    });

    使用方式在ThinkphpLaravel中一致

类型注释集合

注意:有时在类型转换时会发生和预期不一致的情况,详见类型转换的判别

基础类型

以上类型支持数组形式 如@var int[] @var int[][]

复合类型

对象类型里面的属性可以是基础类型还可以是复合类型