hyperf实用工具

使用hyperf框架的小伙伴,研究这个框架三个多月了,感觉框架的响应速度真的非常棒,但是实用的工具还有些欠缺,我根据之前用的yii框架和laravel带来的灵感封装了一些工具,有使用hyperf框架的小伙伴可以看一下:

hyperf-tool

功能

  • 该组件主要是根据开发扩展一些hyperf的工具,主要有gii工具、swagger的扩展等… 持续跟进中。。。

下载安装包

composer require eric-strive/hyperf-tool

同步配置

php bin/hyperf.php vendor:publish eric-strive/hyperf-tool
  • swagger模板配置在App\Constants\SwaggerTemplate,可以将重复出现的swagger配置在SwaggerTemplate中,
    可以极大的简化controller swagger代码量

swagger使用示例 这里需要配合 daodao97/apidog 使用,感谢 hyperf开发中之一刀哥提供如此好用的swagger

  • ValidationRequest :template:是配置的模板,这可以将很复杂的注解简化
@ValidationRequest(template="authorization") 
  • BodyValidation
    简化body,这里将结合Request,可以将校验和Request结合,可以复用配置校验
@BodyValidation(validate="DictDetailRequest",scene="search",template="page_search")  
  • SwaggerResponse
    这里是扩展了ApiResponse,可以极大的依赖Request,达到复用以及简化controller代码
@SwaggerResponse(responseClass="DictDetailRequest",scene="response",template="page")

代码生成

  • controller自动生成
php bin/hyperf.php make:controller TestUserController TestModel 测试我的功能
  • request自动生成
php bin/hyperf.php make:request RoleRequest roles

导入导出工具

  • 导入
$excelImport = new Import($file, $startRow, $endVerifyLine);
        $excelImport->process(function ($saveData) {
            // 处理$saveData
        }, $format);
$file :导入的文件对象,UploadedFile对象
$startRow:文件开始读取的行,如果需要过滤前面的数据可以使用
$endVerifyLine:验证的列,这里防止文件后面空行过多导致报错,验证的行为空时直接终止取数

$saveData:获取的数据
$format:数据对应格式,具体行对应的字段配置
eg:
[
    'email'      => 2,
    'phone'      => 1,
    'user_name'  => 0,
    'real_name'  => 3,
    'job_number' => 0,
]
这里是字段分别对应的列,逻辑会自动根据对应的列来处理数据
  • 导出
Download::downloadCsv($fileName, $data, true),$format);
$fileName:导出文件名称
$data:导出数据,这里可以是数组和对象,对象需要时model的对象
$format:数据处理的格式
eg:
[
    [
        'label' => "真实姓名",
        'value' => 'real_name',
        'width' => 15,
    ],
    [
        'label' => "创建时间",
        'value' => 'created_at',
        'width' => 20,
    ],
    [
        'label' => "类型",
        'value' => static function ($model) use ($employeeType) {
            return getExistParam($employeeType, $model->type);
        },
        'width' => 5,
    ],
]
上面配置:
label:csv头信息
value:取的对象或数组的值,可以是函数
width:该列的宽度,根据实际调整

Download::downloadCsv('test.csv', [[
    'real_name'=>'王五',
    'created_time'=>'2020-01-02 10:02:12',
    'type'=>'测试',
],[
    'real_name'=>'张三',
    'created_at1'=>'2020-01-23',
    'type'=>'类型',
]], [
    [
        'label' => "真实姓名",
        'value' => 'real_name',
        'width' => 15,
    ],
    [
        'label' => "创建时间",
        'value' => 'created_time',
        'width' => 20,
    ],
    [
        'label' => "类型",
        'value' => static function ($model) {
            return $model['type'] . '测试类型';
        },
        'width' => 5,
    ],
]);
有任何问题请联系 eric-strive@qq.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值