php项目代码规范->如何写出规范而易于理解的项目代码

时间:2019-05-20 13:43:52   收藏:0   阅读:135

2019年5月17日10:50:12

 前序:

很多时候,PHP代码风格过于自由,导致一个项目有N多种写法风格,有些人为了自己认为的技术"高",经常写一些奇奇怪怪的写法比如:

例子1,一个很简单的功能,给你写N个回调函数,导致代码可读性基本为零。,

例子2,比如 if else 不写{} 吧代码块包起来,不是所有的人用的ide都可以识别这种写法,当然php的引擎解析不会有问题

例子3,比如为了代码方便 经常写匿名函数,一层套一层,为了写法更简洁,代码无法复用,代码可读性很低

以上的说道的功能倒是一些语法糖,不是所有开发语言都有,特有写法,不通用,如果只会一种后端代码语言,可能对这块很难理解

 

PSR

参看PSR的编写规范,如果完全按照PSR来编写代码,确实不错,但是,很难要求所有人的达到这个标准

中文翻译版 http://psr.phphub.org/

已经通过的标准有1,2,3,4,6,7,这些标准都是一些不错的标准,目前我遵循其中的一部分,为什么是一部分而不是全部,因为不能要求项目组所有人都强制这种代码规范

一些参考规则

https://www.w3cschool.cn/phpkfbmgf/apedj4.html

 

IDE使用

其实不限制具体使用什么ide,但是如果有可能就统一最好,不然有些代码写法在不同的ide,代码提示和代码追踪是比较麻烦的,比如使用容器和回调函数的时候,只能靠自己查找源代码

 

命名规范

建议统一使用驼峰法,变量名也是,尽量使用英文可读翻译的单词做方法名,特别是对于不喜欢写很多注释的同学

文件名称和类型名一致,不要在一个文件写多个类,方便代码阅读和管理

比如:

PurchaseInStorageService.php

代码内容:
namespace App\Service;

use App\Service\BaseService;
class PurchaseInStorageService extends BaseService {

    public $a = 0;
    public static $b = ‘string‘;

  /**
  *
  * @param int $shopId
  * @param int $purchaseOrderId
  * @return type
  */

  public static function inStorageList(int $shopId, int $purchaseOrderId) {

  }

}

/**

*/

ide会自动吧当前方法的参数作为注释显示出来,方便你编写参数注释

 

这是一种比较常见写法,其实更规范和合理的代码是这样,参考代码分层

代码分层

代码分层的好处就是代码逻辑复用,当需要做一些逻辑聚集操作的时候,可以直接做,不需要在吧需要做的功能全部重写一次,直接调用以前对应的服务层

一般代码分层

控制器层Controller

服务接口层 ServiceInterface

服务实现层 Service

模型层 Models

和控制器平级的api层

api版本控制层

计划任务层

比如现在symfony也是可以做类似java类似的基于组件的最小化开发,类似spring boot开发的意思

还有一些通用的但是在PHP用不是太多的层

错误处理层,相当于php的错误Handel注册处理函数,自定义错误的处理

aop层,根据规范的控制器,或者服务层,增加一些额外附加的功能

过滤器层,对请求的过滤或者控制

这些有一些在php出现的比较少,但是都是一些编程思想的实现,通用语各种语言中

为什么要出现接口层,又出现接口实现层,这个其实有多方面考虑,比如多态,集成多种支付的时候,实现支付接口直接去写业务逻辑,规范代码,需要根据不同的类型的支付,统一代码调用

比如

 

 

有些人说,如果要分细一点,就分得更细,这个主要看系统设计要求和招的开发人员的水平,分层越多,理解起来越难,写的代码就越多,个人建议适当的分层即可。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!