• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

看完这篇你的PHP代码优雅一个档次

php 搞代码 3年前 (2022-02-28) 30次浏览 已收录 0个评论
文章目录[隐藏]

引言

明天老王同学跟我说,他的代码好蹩脚,像一坨xiang。问我要怎么

进步本人的代码品质,让本人代码看得悦目一点,难受一点, 就像

看到大长腿MM,两眼放光那种。

于是我: 你先这样,而后这样,而后再那样。。。。。。<!–more–>

老王同学: 别闹, 到底是哪样?

好的, 我要开始装13了。。。

根本标准

先说一下最根本的货色:

  • 变量名应用驼峰命名。不懂的单词不要用拼音,而是要查词典找到对应的单词。
  • 常量命名应用大写下划线形式命名。如:SYSTEM_EROOR = 50000
  • 缩进应用Tab键,不要打一堆空格做缩进。
  • 类名首字母大写驼峰命名,须要见名知其意,正文阐明这个类的性能。例如:
  • 办法名驼峰命名,办法行数尽量管制在80行左右,正文阐明函数干嘛用的。
  • 花括号独占一行,例如:
  • foreach慎用援用,例如以下代码会有问题:

预期后果是输入: 2 4 6,理论后果是2 4 4, 至于为什么可
以看我之前的文章: PHP中&符号你真的理解吗?`。
能够应用array_walk办法防止这个问题, 示例:

  • 防止if, elese嵌套过深,很多嵌套能够通过提前终止来打消, 举个简略的例子:

倡议应用第二种形式,不符合条件的间接返回,剩下的就是符号条件的,那么防止了在if外面写很多代码。

  • 多个if/else应用switch来代替,PHP8.0版本能够应用match更为简洁。
  • phpstorm中装置SonarLint插件。如果你写的代码呈现虚线,阐明不太现实,那么能够依据提醒批改,置信有强迫症的同学肯定会改,长此以往代码就很标准了。例如:

    办法未应用,办法名不标准曾经通知你了,能够快捷批改,也能够本人批改。

框架标准

  • 后面说得都是比拟根底的货色,接下来才是次要的内容。
  • 置信很多同学都用过罕用的thinkphplaravelyii等风行框架之一。
  • 这些框架都是MVC架构的,看过很多人的代码,要么把业务逻辑写在控制器外面,要么写在Model外面, 写在Model外面相比写控制器外面的还绝对好一点。其实对于大型项目都不太敌对。
  • 下文以Laravel框架为例。

参数验证

  • API须要进行参数验证,然而参数验证写在哪里比拟优雅呢?可能很多人在controller定义规定,而后在调用验证办法,那么验证那段代码将在每个API外面呈现,例如我共事写的。

    这段代码在每个API外面均会呈现一次,岂不是很啰嗦,那么如何解决呢?

  • 在Laravel的http目录下建设一个Requsts目录,用于寄存申请的参数验证类。建设一个BaseRequest类:

比方登录须要参数验证再建设一个LoginRequest类继承这个BaseRequest

  • 应用的时候只有在Controller的办法中注入这个申请类即可。

这里获取申请参数的时候会对表单进行验证,否则参数验证失败会调用刚刚Request积攒定义的办法抛Json异样,返回信息给客户端。

控制器

控制器的次要工作负载获取申请数据和返回内容,不应做更多的事件,那么能够定义一个Service层来解决业务逻辑。
所以我的控制器的代码只有一行。

  • 在Laravel的app目录下建设一个Services文件夹用于寄存Service类,建设一个BaseService类:

而后建设一个UserService来解决用户相干的业务逻辑。

在UserController中注入这个UserService应用:

Model

Model不倡议写业务逻辑。Model次要是用来定义一些内容,不应该操纵数据。

Model的数据操纵应该放在Repository中,在Laravel的app目录下建设一个文件夹Repositories

定义BaseRepository:

定义UserRepository,用于用户数据相干的操作, 在构造方法中注入UserModel:

常量

我的项目中很多常量该怎么定义?

在app目录创立一个Constant目录, 再建设一个Contstant类来保留这些自定义常量。

这样的益处是:

  • 自定义常量能够集中的治理。
  • 批改常量值的时候,只须要在这个类中找批改一次即可,代码更新维护性好。

附录


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:看完这篇你的PHP代码优雅一个档次

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址