PHP 代码规范简洁之道

2018-12-13 15:37 by 布网科技

原文出处: Scholer   

1. 统一的编码规范

编码规范往简单说其实就是三个方面:

  1. 换行

  2. 空格

  3. 变量命名

放在 PHP 里面,还有一些附加的地方,比如关键字大小写,语法糖的使用(array() 与 []等)的问题。之前整理过 PSR 的标准,也找过 php-cs-fixer 这样的工具。这些都是规范代码的重要手段。有统一的标准,配合上工具的检查,形成统一的编码约束不是什么难题。

没有规范,不同的人甚至同一个人在空格、换行和命名上都有可能是十分随意的。代码一长,回使整个文件看起来无比杂乱。

典型的例子比如:if 和 else 的组合,可以写出无数种风格,比如:

PHP

1

2

3

4

5

6

7

8

9

10

11

12

# 单语句不写大括号

if (true) doSomething();

# else 大括号换行 十分占篇幅

if (true)

{

    doSomething();

}

else {

    doElseThings();

}

# 此外还有关键字后不带空格,随意缩进等等

# ...

再比如变量函数命名的问题上,各种混搭风格层出不穷:

PHP

1

2

3

4

5

6

7

8

9

# 全小写

$someparam1 = null;

# 首字母下环线

$_some_param_1 = null;

# 某些库的类,下划线和大小写混用

class Abstract_ClassA

{

 

}

这里并不探讨各种写法的优缺点,只是风格需要保持统一,不要混用。

2. 良好的编码习惯

如果你仔细看过 PSR 的标准,可能也会注意到某些地方其实是标准无法涉及到的。比如一个超长的表达式在什么时候换行,如何缩进等。

这里涉及到的就是编码习惯的约束问题。

比如方法的链式的调用的问题,比如某些数据库查询的封装:

PHP

1

2

3

4

5

6

7

8

9

10

# 不换行的情况下句子会很长

$result = $this->db->select('id')->where('a', 1)

    ->groupBy('a')->orderBy('id', 'DESC')->result();

 

# 这种情况下我建议是一个条件一行,保持缩进

$result = $this->db->select('id')

    ->where('a', 1)

    ->groupBy('a')

    ->orderBy('id', 'DESC')

    ->result();

还有数组定义,某些数组成员字符串很长的情况下的写法:

PHP

1

2

3

4

5

6

7

8

9

$array = ['abcdefg', 'acbdfeg', 'bcadgfe', 'cdadgef'];

 

# 如果成员太长,我建议拆解,这样

$array = [

    'abcdefg',

    'acbdfeg',

    'bcadgfe',

注:本文转载自布网科技,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
  • 波浪
  • 波浪
  • 波浪
  • 波浪