承接 soft35/fend-plugin-validator 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

soft35/fend-plugin-validator

Composer 安装命令:

composer require soft35/fend-plugin-validator

包简介

Fend is an tiny flexible framework

README 文档

README

简介

Validator组件是Fend框架验证参数类合集,目前主要有两款:

  • ValidateFilter 新封装的参数统一校验类,能够统一登记参数验证规则(必填、数据类型、取值范围、默认值、自定义闭包规则),支持类似swagger API文档导出(建设中)
  • Validator 老款仿造Thinkphp实现的validator,对输入参数多规则验证,目前没有在维护,后续会投入精力进行整理

安装

composer require php/fend-plugin-validator

ValidatorFilter 使用样例

<?php
//演示输入参数
$param = [
    "must"     => true,
    "string"   => "wahahah",
    "int"      => "3244",
    "float"    => "43.6",
    "double"   => "123.1",
    "email"    => "test@qq.com",
    "enum"     => "yes",
    "callback" => "ahaha",
];
//创建验证类,提供当前接口网址及功能介绍,及获取参数方式method(GET\POST等)
//当请求本接口附带tal_sec=show_param_json时,会输出下面录入的所有参数信息json格式,用于生成wiki
$validate = new \Fend\ValidateFilter("http://www.test.php/user/info", "根据学生id查找学生信息", "get");

//用于生成接口文档返回结果,demo请求参数,可以提供多组,每组体现不同情况
$validate->addDemoParameter([["uid" => 12312], ["uid" => 123]]);

//接口参数规则
//bool检测
$validate->addRule("must", "bool", "bool类型,必填字段", true);
//int检测,只是检测内容是否都为数字,类型不检测,不转换预防超长int被转换溢出
$validate->addRule("default", "int", "int类型,非必填,默认1", false, 1);
//字符串检测
$validate->addRule("string", "string", "用户uid", false, "", [1, 10]);
$validate->addRule("int", "int", "用户uid的int写法", false, "", [1, 20000]);
//浮点检测,返回结果不转类型成float防止丢失精度
$validate->addRule("float", "float", "float类型", false, "", [1, 20000]);
$validate->addRule("double", "double", "double", false, "", [1, 20000]);
$validate->addRule("email", "email", "email检测", false);
//用户输入项,必须是可选范围内选项
$validate->addRule("enum", "enum", "enum检测:yes代表xx,no代表xx", false, "", ["yes", "no"]);

//闭包自定义参数校验规则
$callback = function ($key, $val) {
    if ($val != "ahaha") {
        throw new \Exception("嗯错误了");
    }
    return $val;
};

$validate->addRule("callback", "callback", "用户回调规则", false, "", $callback);

//自定义错误提示信息及错误码
$message = [
            "must.require" => ["must必填,自定义哈",223],
            "string.int" => "user_id 必须是数值",
            "float.float" => ["只要float", 3636], //数组类型,第二个参数为自定义exception错误码
            "regx.regx" => "regx 必须由数字英文字符串组成",
            "user_name.string" => "user_name 必须是字符串类型数据",
 ];
$validate->addMessage($message);

try{
    //$param为演示数据,建议实际使用传递\Fend\Di::Factory()->get("Request")->get(); || \Fend\Di::Factory()->get("Request")->post();
    $result = $validate->checkParam($param);
}catch(\Exception $e) {
    return Di::factory()->getResponse()->json(["state"=> 0, "msg" => $e->getMessage(), "code" => $e->getCode()]);
}

//返回所有符合条件的变量,包括没有传递但是有默认值参数
var_dump($result);

//批量添加rule演示
$rules = [
            "must" => ["bool", "bool类型,必填字段", true],
            "default" => ["int", "int类型,非必填,默认1", false, 1],
            "string" => ["string", "用户uid", false, "", [1, 10]],
            "int" => ["int", "用户uid的int写法", false, "", [1, 20000]],
            "float" => ["float", "float类型", false, "", [1, 20000]],
            "double" => ["double", "double", false, "", [1, 20000]],
            "email" => ["email", "email检测", false],
            "enum" => ["enum", "enum检测:yes代表xx,no代表xx", false, "", ["yes", "no"]],
            "heiheihei" => ["string", "非必填,没填写", false],
            "testreg" => ["regx:/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/", "邮件正则检测", true],
            "t" => ["callback", "邮件正则检测", true, "", [validatefilterTest::class, "t1"]],
            "callback" => ["callback", "用户回调规则", false, "", $callback],
        ];

        $validate->addMultiRule($rules);
?>

Validator 使用样例

类Thinkphp方式的validator,目前还在整理阶段

<?php
 $rules = array(
    'name' => 'alpha|required', 
    'age'=> 'num--只能是数字|required--必须的', 
    'color' => 'optional--非必填|min:5--最小长度为5'
 );
 list($valdi_data,$errors) = validate($_POST, $rules);

soft35/fend-plugin-validator 适用场景与选型建议

soft35/fend-plugin-validator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 01 月 27 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 soft35/fend-plugin-validator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 soft35/fend-plugin-validator 我们能提供哪些服务?
定制开发 / 二次开发

基于 soft35/fend-plugin-validator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-01-27