基本规范先说一下最基本的东西:变量名使用驼峰命名。|laravel基本规范
基本规范
先说一下最基本的东西:
变量名使用驼峰命名 。 不懂的单词不要用拼音 , 而是要查词典找到对应的单词 。
常量命名使用大写下划线方式命名 。 如:SYSTEM_EROOR=50000 。
缩进使用Tab键 , 不要打一堆空格做缩进 。
类名首字母大写驼峰命名 , 需要见名知其意 , 注释说明这个类的功能 。 例如:
文章图片
方法名驼峰命名 , 方法行数尽量控制在80行左右 , 注释说明函数干嘛用的 。 
文章图片
花括号独占一行 , 例如:
文章图片
foreach慎用引用 , 例如以下代码会有问题:
文章图片
预期结果是输出:246 , 实际结果是244,至于为什么可
以看我之前的文章:PHP中&符号你真的了解吗? 。 可以使用array_walk`方法避免这个问题,示例:
文章图片
避免if,elese嵌套过深 , 很多嵌套可以通过提前终止来消除,举个简单的例子:
文章图片
建议使用第二种方式 , 不符合条件的直接返回 , 剩下的就是符号条件的 , 那么避免了在if里面写很多代码 。
多个if/else使用switch来替代 , PHP8.0版本可以使用match更为简洁 。
phpstorm中安装SonarLint插件 。 如果你写的代码出现虚线 , 说明不太理想 , 那么可以根据提示修改 , 相信有强迫症的同学一定会改 , 久而久之代码就很规范了 。 例如:
文章图片
方法未使用 , 方法名不规范已经告诉你了 , 可以快捷修改 , 也可以自己修改 。 框架规范
前面说得都是比较基础的东西 , 接下来才是主要的内容 。
相信很多同学都用过常用的thinkphp丶laravel丶yii等流行框架之一 。
这些框架都是MVC架构的 , 看过很多人的代码 , 要么把业务逻辑写在控制器里面 , 要么写在Model里面 , 写在Model里面相比写控制器里面的还相对好一点 。 其实对于大型项目都不太友好 。
下文以Laravel框架为例 。 参数验证
API需要进行参数验证 , 但是参数验证写在哪里比较优雅呢?可能很多人在controller定义规则 , 然后在调用验证方法 , 那么验证那段代码将在每个API里面出现 , 例如我同事写的 。 
文章图片
这段代码在每个API里面均会出现一次 , 岂不是很啰嗦 , 那么如何解决呢?
文章图片
在Laravel的http目录下建立一个Requsts目录 , 用于存放请求的参数验证类 。 建立一个BaseRequest类:
文章图片
比如登录需要参数验证再建立一个LoginRequest类继承这个BaseRequest 。 
文章图片
使用的时候只要在Controller的方法中注入这个请求类即可 。 
文章图片
这里获取请求参数的时候会对表单进行验证 , 否则参数验证失败会调用刚刚Request积累定义的方法抛Json异常 , 返回信息给客户端 。 控制器
控制器的主要工作负载获取请求数据和返回内容 , 不应做更多的事情 , 那么可以定义一个Service层来处理业务逻辑 。
- One|基于Android 13打造:三星Galaxy S22抢先用上One UI 5.0
- 机器人|华为机器人新专利上线 网友:先有华为后有天开上鸿蒙如升仙
- 华为的“牌面”基本已经变了!外媒:断供简直是步“臭棋”!
- 人人奋勇争先 出彩技能河南
- 世界上是先有鸡,还是先有蛋?科学家们终于给出答案了
- 固态硬盘|速率高达512GBs!PCIe7.0规范发布,但PCIe4.0或仍是主流!
- 三星GalaxyS系列旗舰手机的影像系统一直处于领先地位|三星isocellhp3或不会搭载最新cmos
- 三星|外观前所未有!三星S23渲染图抢先曝光:真安卓机皇提前预定!
- PCIe 7.0 规范公布,带宽直接翻倍
- 小米科技|雷军发帖预热小米12 Ultra,搭载骁龙8+,发布时间也基本敲定
