php代码规范

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

整理几个需要注意的方面



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

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

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


代码编写篇

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

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

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

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

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

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

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

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


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

switch 和 case

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

<?php
switch ($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 语句应该如下所示,注意其 括号、空格以及花括号的位置。

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

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

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

for

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

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

foreach

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

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

trycatch

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

<?php
try {
    // 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)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值