PSR标准

PHP作为脚本语言,表现得比较松散不严谨,于是造成了编程方法花样百出,特别是代码风格,通常下载来的东西代码风格各异,阅读有一点困难,但这个还不是大问题

更大的问题是要集成这个下载来的第三方类库/插件/框架时,还需要自己改改这改改那才能集成

为了解决这些问题,让大家开发的东西便于大家互相共享使用,再是防止不良风格代码埋成BUG隐患以及解决阅读障碍

有个叫FIG的组织机构制定了一套叫PSR标准的PHP编码规范,其中包含了PSR-0,PSR-1,PSR-2,PSR-3,PSR-4...等规范,好像新的规范还在陆续出来

下面的文章我会将它们一篇篇原文贴出来,其中PSR-4是用来取代PSR-0的,所以下面的文章中是没有PSR-0标准的

以下PSR标准转载自https://github.com/hfcorriez/fig-standards/tree/zh_CN/接受

然而在这里,我继续谈一下我个人的看法

我觉得嘛,的确上面提到的问题是需要解决的,要解决就需要大家去统一一些东西才可以得到解决,所以有标准是好事

但我并没有在项目管理中落实这个PSR标准,我觉得它规定得太细了,导致程序员书写犯错的机率上升,于是又增加了代码格式的调整成本

我觉得它里面有些内容好奇怪,好像PSR-2中已经提过的内容在PSR-3里又重复提,不懂是什么意思,你仔细阅读发现它里面制定的各种条条框框与你实际上写的代码内容有30%左右可能是不沾边的,所以要记下这个标准可能性价比不高

而有些不知道为什么会规范的内容却要规范,以我目前的工作经历/项目经验来说根本无法理解,我知道它自然有它的道理

我尊重这个规范,但目前暂时没有能力去完全遵守,因为检查成本高,可以说我目前接触的开源框架也没有彻底遵守PSR标准的,看来它的完整落实还是来日方长


目前我是比较踏实的,比如说

if(true){
	//...
}

写成这样(PSR标准要求这样)

if (true) {

}

这两种写法我是不限制的,因为它们完全不影响阅读,要说代码整洁的话,个人觉得如果说PHP这方面要规范,那其它C系语法也得这样规范是不是?

可不见Eclipse对JAVA代码那样加空格?其实广大程序员阅读括号旁边没空格的if语句块根本没压力不是吗?

我的个人总结就是:踏实点,基本目标是能阅读,而不是去纠结统一加空格不统一加空格的,能换行对齐好缩进就可以了,代码检查成本少一个是一个

但PSR标准有很多规范是很好的,大家应该都去参考一下提炼出来,特别是PSR-4标准,自动加载这个


最后,我也正在基于PHP_CodeSniffer进行自我规范的扩展,其实只要达到了代码统一/易阅读/可维护的目的就行了,接下来就要实现的就是自动化按照这套规范来检查