cxx / param-inject
param-inject
1.0.10
2021-12-21 07:25 UTC
Requires
- php: >=7.2.0,<7.5.0
- roave/better-reflection: ^4.3
README
使用依赖注入提供请求参数注入功能,可更直观的处理客户端数据
Install
Thinkphp >= 6.0
Laravel >= 5.0
composer require cxx/param-inject
Start
-
添加服务(支持tp和laravel)
服务使用方式请查看官方文档(Thinkphp, Laravel)
Thinkphp:
Cxx\ParamInject\ThinkParamService
Laravel:
Cxx\ParamInject\LaravelParamService
-
创建参数类(命名空间随意,只要能被加载)
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; }
-
使用
控制器中
// 注意方法参数类型 public function index(Test $test) { dd($test); }
在路由闭包中也类似
// 注意匿名函数参数类型 Route::post('/test', function (Test $test) { dd($test); });
使用方式在
Thinkphp
、Laravel
中一致
类型注释集合
注意:有时在类型转换时会发生和预期的结果不一致的情况,详见类型转换的判别
基础类型
示例 | 备注 |
---|---|
@var int 或 @var integer | 整形 |
@var string | 字符串 |
@var bool 或 @var boolean | 布尔类型 |
@var float 或 @var double | 浮点型 |
@var mixed | 此类型不会对数据进行转换 |
以上类型支持数组形式 如@var int[]
@var int[][]
复合类型
示例 | 备注 |
---|---|
@var Test | 对象类型,Test是继承Cxx\ParamInject\Param 的对象 |
@var Test[] | 对象数组类型 |
对象类型里面的属性可以是基础类型还可以是复合类型