设为首页 收藏本站
查看: 878|回复: 0

[经验分享] PHP接口项目程序开发浅析

[复制链接]

尚未签到

发表于 2018-12-24 09:55:28 | 显示全部楼层 |阅读模式
  前不久在开发的过程中发现一个问题,虽然各种代码看上去很严格,很规范,但总感觉实质上各个模块还是不统一,就在我开发到服务器列表页面的时候,不小心踩到了地雷,剖析下:这是两个服务器列表接口,返回数组格式,而我需要对两个数组的值进行部分排重组装,很快代码就写完了,测试完全OK,当然那天很轻松得下班了,当第二天到公司的时候,同事跟我说我那部分代码出错了,必须要先定义一个空数组,于是我翻开昨天的代码看了一遍,把所有值都打出来看还是没问题,当我换了一个ID我终于把地雷扫出来了:接口有值的时候返回数组,没值的返回 0 -。-,写到这各位应该明白我的意思了吧,接口返回值格式要固定,否则会有地雷哦。
        下面是工作中遇到的一些问题,也顺便谈一谈我对项目中模块接口化开发的建议,欢迎大神指导。
      前不久看项目代码,无意中看到了很长的一段 if  else 如图:

  然后就尝试对其进行修改,但我发现没有地方可以入手了,因为Model层没人能确定有多少地方在取用这个接口,或者需要很长时间才能查到都有哪些地方在用,这将是一个一点好处都没有的活,所以这时候对接口式开发有了一个新的体验。
      当我们写接口的时候,也许有很多表或者类,比如有个字段'type' 有很多中形式通过这个字段我们查找到不同的值,那当控制器传至过来的时候就会是很多不同的字符串来判断业务逻辑层的条件然后返回所得值,这么写当然没错,但是我们想一下,如果有很多类似的接口呢?如果controller层(如上图)有很多类似的接口这需要写多少个if else 呢,
  换种方式,如果我们吧这些参数改成一个数组会如何?看下图。
  


  上图我们吧所有的if都清空了,当然这肯定是不合理的,因为我没有判断最后一个else,当然这并不是什么难事,所以就揭过了,那我们在就只剩下接口model层面的问题了,我想这很简单,举个例子:
  

  接口:

  上图可以看出,如果我们传至都采用数组格式的话,那在C层的代码就会被清除很多,当然,手动定义数组确实是很费时间的事情而且要把这个数组定义成符合自己模块的数组,这对C层的开发者来说是增加了开发成本,但对于接口化项目模式来说,这样应该很不错的,当然大神如果有别的看法请评论。
  这一篇就是浅谈一下工作中遇到的,然后有这么个想法就剖析一下,您还有什么好的开发模式请分享给我,感谢大神
  

  每天进步一点。
  --PHP随心所欲
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655150-1-1.html 上篇帖子: 使用memcache.php监控memcached 下篇帖子: 理解php中的print <<
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表