PHP代码规范(非完全遵循psr-1,psr-2)
- 代码tab键进行缩进,indent_size = 4
- 每行的字符数应该软性保持在80个之内, 不可多于120个
- 每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。
- 类的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。
- 方法的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。
- 控制结构的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有。
- 控制结构的开始花括号({)必须写在声明的同一行,而结束花括号(})必须写在主体后自成一行。
1.1 例子
以下代码展示了绝大部分上述规范
<?php namespace Vendor\Package; use FooInterface; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; class Foo extends Bar implements FooInterface { public function sampleFunction($a, $b = null) { if ($a === $b) { bar(); } elseif ($a > $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static functionbar() { // method body } }
2.2 文件
- 所有PHP文件必须使用Unix LF (linefeed)作为行的结束符。
- 所有PHP文件必须以一个空白行作为结束。
- 纯PHP代码文件必须省略最后的 ?> 结束标签。
关键字 以及 True/False/Null
PHP所有 关键字必须全部小写。 常量 true 、false 和 null 也必须全部小写。
方法的参数
参数列表中,每个参数后面必须要有一个空格,而前面一定不能有空格。
有默认值的参数,必须放到参数列表的末尾。
例子:
<?php namespace Vendor\Package; class ClassName { public functionfoo($arg1, &$arg2, $arg3 = []) { // method body } }
PHPSTORM设置
- 勾选 Editor => General => Appearance => Show whitespaces
- 安装editconfig插件,以下提供一份本公司通用的editconfig
root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true indent_style = whitespace indent_size = 4 trim_trailing_whitespace = false [*.php] end_of_line = lf indent_style = tab indent_size = 4 [*.md] trim_trailing_whitespace = false [*.{yml,yaml}] indent_size = 2