用 thinkphp5.1 框架对接别人的系统,需要 40 个参数,过滤和验证、还要测试接口。怎么写比较好点。。。
1 crazystory 2018-02-27 18:05:11 +08:00 40 个???execuse 咪?? |
2 killerv 2018-02-27 18:07:44 +08:00 需要那么多参数? |
3 keller 2018-02-27 18:09:11 +08:00 |
![]() | 4 chinvo 2018-02-27 18:09:47 +08:00 这接口谁设计的,拖出去打死了 |
![]() | 5 SoulSleep 2018-02-27 18:17:14 +08:00 ![]() 一个 bean validator 一个参数。。 喔。。。java 玩法,php 一定有。em ! 40 个参数,映射到一个 bean 上,继续 validator。。。。 java 玩法。。。 |
![]() | 6 x86 2018-02-27 18:22:40 +08:00 40 个参数...写的啥玩意 |
7 MeteorCat 2018-02-27 18:38:32 +08:00 via Android 吓尿了 |
![]() | ![]() 首先,这么多参数有点坑,不好维护,完全可以封装成 JSON 传递。 可以采用 装饰器模式进行过滤验证,具体怎么写自己百度。 |
![]() | 9 mritd 2018-02-27 19:33:01 +08:00 via iPhone 啥,你再说一遍 |
10 HYSS 2018-02-27 19:35:40 +08:00 ```php $validatorRuleMap=[ 'name'=>'validatorName', 'nickname'=>'validatorNickname', ]; foreach ($validatorRuleMap as $rule){ //取数据 //验证 } ``` |
![]() | 11 zjsxwc 2018-02-27 19:38:46 +08:00 |
![]() | 12 murmur 2018-02-27 19:41:15 +08:00 40 个参数如果只是格式校验还好 涉及到业务就自求多福吧 |
13 hermanzhu 2018-02-27 19:53:41 +08:00 40 个参数不建议流水账 foreach 调用 validator,这么些参数肯定能根据业务线进行分类,分好类再抽象出独立的 validator,造福后人…… |
14 kisama12 2018-02-27 20:17:22 +08:00 via Android PHP 那么厉害的嘛……参数多于三个通常就封装起来了…… |
![]() | 15 manhere 2018-02-27 20:27:39 +08:00 via Android tp 有验证器啊,看手册! |
![]() | 16 abusizhishen 2018-02-27 20:59:21 +08:00 via Android 参数归类,按类验证 |
17 wwww961h 2018-02-27 21:05:22 +08:00 写成数组,可以用个二维的,同一类型的放在同一个二级数组里,然后循环来过滤,40 个参数真心有点多, |
18 dobelee 2018-02-27 21:08:33 +08:00 via Android 什景需要多?啥不用 json ? |
19 Junjunya 2018-02-27 22:55:04 +08:00 好奇楼上大佬们说的为啥不用 json ,用了 json 不还是一个 40 个值的 hashMap 么 和 php 直接 $_GET / $_POST 获取到 40 个值的数组 有啥不一样么 |
24 ZXCDFGTYU 2018-02-28 12:12:31 +08:00 @MaZiT 非法参数在 Request::instance()->get()/Request::instance()->post()的时候已经过滤了,验证器是验证参数完整性的。安全在调用 get()/post()的时候处理了 |
25 NEETLEE 2018-02-28 14:23:21 +08:00 ![]() thinkphp5 是有 validate 类的,你把你的校验规则按照[控制器名]=>[方法名=>[参数 1=>规则]]这样的结构写成数组存在 php 文件里,并且 rerurn 出来,然后 new 的时候需要验证的时候用 request 类可以拿到控制器名和方法名由此取到规则再传进去再验证就可以了。 这样的写法把规则和代码分离开,参数再多也不会显得乱 |