php代码规范

来源:互联网 发布:威尔克姆绣花软件下载 编辑:程序博客网 时间:2024/05/18 01:50

官方文档请移步php代码规范

整理几个需要注意的方面



类的命名必须 遵循 StudlyCaps 大写开头的驼峰命名规范。

类的常量中所有字母都必须大写,词间以下划线分隔

方法名称必须符合 camelCase() 式的小写开头驼峰命名规范。


代码编写篇

代码必须使用4个空格符而不是 tab键 进行缩进。

每行的字符数应该软性保持在80个之内, 理论上一定不可多于120个, 但一定不能有硬性限制。

每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。

常量 true 、false 和 null 也必须全部小写。

方法名称后一定不能有空格符,其开始花括号必须独占一行,结束花括号也必须在方法主体后单独成一行。参数左括号后和右括号前一定不能有空格。

参数列表中,每个参数后面必须要有一个空格,而前面一定不能有空格。有默认值的参数,必须放到参数列表的末尾。

方法及函数调用时,方法名或函数名与参数左括号之间一定不能有空格,参数右括号前也 一定不能有空格。每个参数前一定不能有空格,但其后必须有一个空格。

  • 控制结构关键词后必须有一个空格。
  • 左括号 ( 后一定不能有空格。
  • 右括号 ) 前也一定不能有空格。
  • 右括号 ) 与开始花括号 { 间一定有一个空格。
  • 结构体主体一定要有一次缩进。
  • 结束花括号 }一定在结构体主体后单独成行


<?phpif ($expr1) {    // if body} elseif ($expr2) {    // elseif body} else {    // else body;}

switch 和 case

标准的 switch 结构如下代码所示,留意括号、空格以及花括号的位置。 case 语句必须相对 switch 进行一次缩进,而 break 语句以及 case 内的其它语句都 必须 相对 case 进行一次缩进。 如果存在非空的 case 直穿语句,主体里必须有类似 // no break 的注释。

<?phpswitch ($expr) {    case 0:        echo 'First case, with a break';        break;    case 1:        echo 'Second case, which falls through';        // no break    case 2:    case 3:    case 4:        echo 'Third case, return instead of break';        return;    default:        echo 'Default case';        break;}

 while 和 do while

一个规范的 while 语句应该如下所示,注意其 括号、空格以及花括号的位置。

<?phpwhile ($expr) {    // structure body}

标准的 do while 语句如下所示,同样的,注意其 括号、空格以及花括号的位置。

<?phpdo {    // structure body;} while ($expr);

for

标准的 for 语句如下所示,注意其 括号、空格以及花括号的位置。

<?phpfor ($i = 0; $i < 10; $i++) {    // for body}

foreach

标准的 foreach 语句如下所示,注意其 括号、空格以及花括号的位置。

<?phpforeach ($iterable as $key => $value) {    // foreach body}

trycatch

标准的 try catch 语句如下所示,注意其 括号、空格以及花括号的位置。

<?phptry {    // try body} catch (FirstExceptionType $e) {    // catch body} catch (OtherExceptionType $e) {    // catch body}

PSR-4 自动载入

  1. 完整的类名必须要有一个顶级命名空间,被称为 "vendor namespace";

  2. 完整的类名可以有一个或多个子命名空间;

  3. 完整的类名必须有一个最终的类名;

  4. 完整的类名中任意一部分中的下滑线都是没有特殊含义的;

  5. 完整的类名可以由任意大小写字母组成;

  6. 所有类名都必须是大小写敏感的。

  7. 当根据完整的类名载入相应的文件……

  8. 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“文件基目录”相对应;

  9. 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符。

  10. 末尾的类名必须与对应的以 .php 为后缀的文件同名。

  11. 自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。