两年前有一门数据库的课程,粗略学习了一下SQLserver的配置和增删改查语句的写法。当时这门课有课程设计,当时水平实在太烂,在CSDN上东拼西凑,用Pyqt搭建了一个惨不忍睹的客户端,再吭哧吭哧配了个数据库,算是完成了一个企业进出货管理系统,也算对数据库的维护和使用有了初步认知。
最近负责写一个后台管理系统的接口,用到了PHP,虽然没学过,但大体过一下语法结构,也就将就开工了。IDE用的VScode(确实挺好用)
任务本身不难,毕竟是写接口,前端给啥我查啥,前端要啥我给啥,但毕竟是新语言,难免碰到一些坑,权当是回顾一下自己碰到的一些问题吧,顺便写写自己这么些天的想法。
水平较菜,难免有认知不周,还望指教。
先说工作内容:
- 本质面向web,是对前端请求的答复,请求又分为get和post,交互方式是json格式。
- 做几个卡片管理的接口,查数据库内卡片类型、拉单个卡片详情,修改卡片信息(包含图片上传存储),删除卡片(其实也并不是删除,加一个假删字段用于判断)
- 做几个题库接口,查题目类型、查指定题目详情,改题目,改题目选项,假删题目
既然目标很明确了,那就主要关注如何实现了。
有别于自己开发,企业级的开发一般会事先定义好很多框架性的东西,比如前端传来的数据去哪取,用什么传回去,也会定义好众多自定义函数。而且处理数据库,会涉及到庞大的操作可能,企业一般会定义好类,相关操作直接去类里调函数,一般也就是select insert update,查询条件的写法一般直接封装好,调函数时直接传值就好。
接口的基本流程:
取数据:框架内把前端传回的数据做了处理,把json转成了数组格式,直接到指定数组内去对应字段就好了。值得一提的是:PHP的数组有键值对(key-value)的概念,一开始可能不习惯,但用起来会发现还挺好用。
数据校验:重要步骤,一般也就校验是否为空,或者一些特殊字段有长度、类型、取值的限制,做好校验反馈,通过后再取回。
增删改:该怎么调函数就怎么调,读懂自定义类的函数还是挺重要的,或者参考前人代码也是很好的方式。个人感觉目前每天就是copy前人代码进行修正……
返回前端:字面意思。
有一些好用的小技巧:
- PHP的调试有些狗,之前用pycharm调试python可以直接监控变量值,到了PHP这好像不行(也许可能行,配什么插件应该就行),但还有个好方法,直接 var_dump($var); exit(); 人工监控变量。
- php的foreach是个好东西,尤其是 foreach ($var as $key => $value),可以遍历键值对,对数据处理是个好方法。
再说说麻烦的地方,最近还碰到一个图片上传的事情,本质是两次post请求,第一次post将图片以文件流二进制上传,存到云端服务器的缓存去,再post把图片文件命名好,再拼接一下地址送到指定位置。方法听上去简单,细节实现麻烦不断,而且自己思考方法写起来有些冗余,要和前辈们学习如何优化思路。(这时候意识到数据结构与算法的重要性了哈哈哈)
最后,还想补一句:另一个做前端的大哥每天好像更头大,UI设计真的是浩大工程。