PHP编码风格规范详细介绍

【虚拟资源买卖网www.cnused.com】源码虚拟资源交易平台,免费开通VIP商户!
吆喝资源网官方客服QQ:787749153官方唯一QQ号码
文字广告位招租      好位置不等人!200元/月

  由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范,即使是使用灵活的脚本语言,也能写出非常漂亮工整的代码。首先我们来看一下已经通过的PSR规范,然后大致讲解一下PSR-1和PSR-2规范的一些具体要求。

已通过的PSR

PSR编号名称说明
1基础编码规范关于PHP标签和基本命名约定等基础的规范
2编码风格规范关于大括号的位置和参数列表等编码格式的规定
3日志接口规范关于日志级别以及记录日志的行为的规定
4自动加载规范关于类和命名空间的命名约定,以及它们与文件系统间映射的规定
6缓存接口规范关于缓存管理的规定,其中包括数据类型、缓存项的生存周期、错误处理等
7HTTP消息接口规范关于HTTP请求和响应的约定

PSR-1基础编码规范

1、开闭标签

  首先,PHP代码必须以<?php或<?=标签开始。换言之,我们不应该再使用短标签<?或其它变化形式。

2、副作用

  PHP文件要么声明类、接口、函数等,要么执行逻辑操作(如读写文件或向浏览器发送输出),但不应该同时兼具两者。

3、命名

  类的命名必须遵守大写开头的驼峰式命名规范。换言之,类名应当以大写字母开头。属性的命名方式没有强制要求,但应该保持一致。方法名称必须符合小写开头的驼峰式命名规范。类常量中的所有字母必须大写,单词之间以下划线分隔。

PSR-2编码风格规范

1、PSR-1要求PHP代码以<?php开头。

  PSR-2规定,纯PHP文件不应该以一个?>标签结束,而应该以一个空白行结束。

2、namespace声明后应该插入一个空白行,use声明语句块后也应该要有一个空白行

  不要在同一行代码中进行多次use声明。

3、类的开始和结束

  class关键字、类名,以及extends和implements关键字必须在同一行中。如果一个类实现了多个接口,那么这些接口名可以在类声明的同一行中,也可以各占一行。如果选择将这些接口名放在多行中,那么第一个接口名必须自成一行,而不是跟在implements关键字后面。类的开始花括号({)应该写在函数声明后自成一行,结束花括号(})也应该写在类体后自成一行。也就是说,类声明看起来如下所示

class EarthGame extends Game implements
    Playable,    
    Savable
{ 
       //类体
}

  也可以将类名与类声明放在同一行中。

class EarthGame extends Game implements Playble, Savable
{ 
    //类体
 }

4、属性声明

  每个属性都必须有访问修饰符(public、private或protected)。不可以使用关键字var声明属性。PSR-1中已经涵盖了属性名的规范:可以使用下划线、小写驼峰式命名或大写驼峰式命名方式,但应该保持一致。(个人推荐属性采用小写式驼峰)

5、方法的开始和结束

  所有方法必须具有访问修饰符(public、private或protected)。访问修饰符必须在abstract或final之后,static之前。具有默认值得方法参数应该放在参数列表的末尾。

  ●单行声明
    方法的开始花括号({)应该写在方法名后自成一行,结束花括号(})也应该写在方法体后自成一行(直接跟在方法代码之后)。方法参数列表不应该以空格开始或结束(即应该紧贴包裹着它们的圆括号)。对于每个参数,参数名(或默认值)后面应该有一个逗号,且逗号后面有一个空格。这听起来似乎有些复杂,如下所示:

final public static function generateTile(int $diamondCount, bool $polluted = false)
{
   //方法体
}

  ●多行声明
    如果方法有很多参数,那么单行方法声明是不实际的。此时我们可以分割参数列表,以便将每个参数(包括类型、参数变量、默认值和逗号)单独放在缩进的一行中。这种情况下,结束圆括号应该放在参数列表后面一行中,并与方法声明的开始位置对齐。开始花括号({)应该在同一行的结束圆括号之后,以空格分隔。方法体应该从新的一行开始。同样,这听起来似乎很复杂,以下示例应该能帮助你理解这条规定。

public function __construct(
    int $size,
    string $name,
    bool $warparound = false,
    bool $aliens = false
) {
  //方法体
 }

6、行与缩进

  代码应该使用4个空格符来缩进,而不是使用制表符。我们可以检查编辑器设置,将其设置为按下Tab键时使用4个空格而不是制表符。每行代码的长度不应该超过120个字符。

7、方法与函数调用

  方法名称和开始圆括号之间不能有空格。方法调用中的参数列表的规则与方法声明中的参数列表规则相同。换言之,对于单行调用,开始圆括号后或结束圆括号前不能有空格。每个参数之后应该紧跟一个逗号,下一个参数前应该有一个空格。如果需要使用多行代码进行方法调用,那么每个参数应该自成一行并缩进,而且结束圆括号也应该自成一行。

$earthGanme = new EarthGame( 
     5,  
     'earth',
      true,
      true
 );
$earthGame::generateTile(5, true);

8、流程控制

  流程控制关键字(if、for、while等)后面必须紧跟一个空格。但是,开始圆括号后不能有空格。同样,结束圆括号前不能有空格。因此内容应该紧贴在括号内的。与类和(单行)函数声明相比,流程控制代码的开始花括号应该与结束圆括号在同一行。结束花括号应该自成一行。以下是一个简单的示例。

$title = [];
for ($x = 0; $x < $diamondCount; $x++) { 
   if ($polluted) {
        $title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));
    } else {
        $title[] = new DiamondDecorator(new Plains());
    }
}

以上就是PHP编码风格规范详细介绍的详细内容,更多请关注吆喝资源网其它相关文章!

吆喝资源网最新课程二维码

  • 相关标签:php
  • 本文转载于:博客园,如有侵犯,请联系删除
  • 本文转自PHP中文网,吆喝网(http://yaoohe.com)搜集整理,如有疑问请联系本站客服!

    本文来源网络,其内容均为发表者提供,文章内容系作者个人观点,不代表本站对观点赞同或支持。如需有侵权,请在7日内联系本站客服进行处理,否则视为放弃追究权利,客服QQ:787749153,请注明。
    1

    发表评论