关于PHP编程的规范 自己总结出的一些规范,方便大家参考 ,主要从代码版本管理规范以及代码自身的规范。
代码版本管理规范:
基本原则就是只管理代码部分,不管配置文件,第三方(composer),编译生成的中间文件,保证每一次提交都是有效提交。
配置文件不受版本管理
像代码里面的配置文件、数据库配置文件、环境配置文件等,这些不应该放在版本管理里面,每个人clone代码下来的时候自己维护自己的环境,这样也方便部署的时候不会因为这些而引起异常。上传描述与上传内容一致
每次push 代码的时候都必须要有log 日志,日志的内容与push的内容(修改,新增)是一致的,这样方便以后回归版本的时候能够通过日志信息定位到哪一次提交。上传代码独立性、完整性
保证第一次push都是完整的,保证其它用户update的时候不会出现问题。没有修改的文件不要上传(只修改了空行)
update的时候保证每个文件都有修改。不需要的代码,直接删除,保持代码干净
不需要的代码以后可以通过log日志来查看;
不需要的代码会让人心情不好;
不需要的代码后面的人不敢删。开发developer分支
针对于长期项目,至少两个分支,一个分支用于发布,一个分支用于开发 。
代码规范原则
模块职责范围
Controller负责获取请求,返回数据;
Doctrine负责各种业务操作;
Repository 负责数据库相关的操作,filter只负责重组数据,不负责产生新的数据。快速失败
先处理错误情况,再处理正确情况。高内聚,低耦合
Once and Only Once
如果出现同段代码(同结构代码)多个地方出现,肯定会可以重构。每个函数不超过屏幕长度
函数不超过30行左右,太长了不容易读者查看,思路容易断。块代码
通过空行,按思路把函数分为几块。public private
不要乱用,函数对外public 越少越不容易犯错。参数越少越好
代码集体所有制
团队每个人都要对代码负责,即使不是自己写的代码。自解释的代码
命名规范,保证每个命名与自己的职责一致,可以参考公司博客这篇文章。第三方组件接口
单独出来,用接口来实现。对高质量代码的渴望
有种感觉就是不改不舒服所有库查询以传参的形式进行
sql 语句查询,安全性考虑。FunmiBundle
单独Bundle。-
命名规则
- 数据库驼峰命名
- 是:1,否 0, 男1, 女0
- bool 变量命名,isXX, canXX
开发使用app_dev.php , 部署没有app.php
-
不要有magic number
- i , j => **index
- pic1, pic2 => xxPic;