PHP编码规范-PSR1、psr2 /psr3 psr4

PHP编码规范-PSR1

详细见php规范官网:

https://www.php-fig.org/psr/psr-1/

https://www.php-fig.org/psr/psr-2/

https://www.php-fig.org/psr/psr-3/

https://www.php-fig.org/psr/psr-4/

PSR-1:基本编码标准

标准的这一部分包括应被认为是确保共享PHP代码之间实现高水平技术互操作性所需的标准编码元素。

本文档中的关键字“必须”,“不得”,“必须”,“应”,“应禁止”,“应”,“不应”,“推荐”,“可以”和“可选”是按照RFC 2119中的描述进行解释。

1.概述

  • 文件只能使用<?php<?=标记。

  • 文件必须仅使用UTF-8,而不能将BOM用于PHP代码。

  • 文件应该任一声明的符号(类,函数,常量等) 引起副作用(例如生成输出,变化的.ini设置,等等),但是不应该这样做既。

  • 命名空间和类必须遵循“自动加载” PSR:[ PSR-0PSR-4 ]。

  • 类名必须在中声明StudlyCaps

  • 类常量必须在所有大写字母中使用下划线分隔符声明。

  • 方法名称必须在中声明camelCase

  • PSR-2:

2.PSR-2概述(最新版见psr12)

  • 代码必须遵循“编码样式指南” PSR [ PSR-1 ]。

  • 代码必须使用4个空格来缩进,不能使用制表符。

  • 线长绝不能有硬性限制;软限制必须为120个字符;每行不得超过80个字符。

  • namespace声明后必须有一个空白行,use声明块后必须有一个空白行。

  • 类的开括号必须在下一行,闭括号必须在正文之后的下一行。

  • 方法的右括号必须在下一行,而右括号必须在正文之后的下一行。

  • 必须在所有属性和方法上声明可见性;abstract并且 final必须在可见性之前声明;static必须在可见性之后声明。

  • 控制结构关键字必须在其后有一个空格;方法和函数调用绝不能。

  • 控制结构的开括号必须在同一行上,闭括号必须在主体之后的下一行上。

  • 控制结构的开括号必须在其后没有空格,控制结构的闭括号必须在其前没有空格。

2.PSR1详细说明

2.1。PHP标签

PHP代码必须使用long 标记或short-echo 标记;它绝对不能使用其他标签变体。<?php ?><?= ?>

2.2。字符编码

PHP代码必须仅使用没有BOM的UTF-8。

2.3。副作用

文件应该声明新的符号(类,函数,常量等),并且不会引起其他副作用,或者文件应该执行具有副作用的逻辑,但不能两者都做。

短语“副作用”表示仅通过包括文件就不与声明类,函数,常量等直接相关的逻辑的执行。

“副作用”包括但不限于:生成输出,显式使用requireinclude,连接到外部服务,修改ini设置,发出错误或异常,修改全局或静态变量,读取或写入文件等等。

以下是同时具有声明和副作用的文件示例;即,应避免的示例:

<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);

// side effect: loads a file
include "file.php";

// side effect: generates output
echo "<html>\n";

// declaration
function foo()
{
    // function body
}
 

以下示例是一个包含无副作用声明的文件。即,要模拟的示例:

<?php
// declaration
function foo()
{
    // function body
}

// conditional declaration is *not* a side effect
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}
 

3.命名空间和类名

命名空间和类必须遵循“自动加载” PSR:[ PSR-0PSR-4 ]。

这意味着每个类本身都在文件中,并且在至少一个级别的名称空间中:顶级供应商名称。

类名必须在中声明StudlyCaps

为PHP 5.3和之后编写的代码必须使用正式的名称空间。

例如:

<?php
// PHP 5.3 and later:
namespace Vendor\Model;

class Foo
{
}
 

为5.2.x和之前版本编写的代码应Vendor_在类名上使用前缀的伪命名间隔约定。

<?php
// PHP 5.2.x and earlier:
class Vendor_Model_Foo
{
}
 

4.类常量,属性和方法

术语“类”是指所有类,接口和特征。

4.1。常数

类常量必须在所有大写字母中使用下划线分隔符声明。例如:

<?php
namespace Vendor\Model;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}
 

4.2。物产

本指南有意避免关于使用任何建议 $StudlyCaps$camelCase$under_score属性名称。

无论使用哪种命名约定,都应在合理范围内一致地应用。该范围可以是供应商级,程序包级,类级或方法级。

4.3。方法

方法名称必须在中声明camelCase()

 

PHP编码规范-PSR2

1.概述

  • 代码必须遵循“编码样式指南” PSR [ PSR-1 ]。

  • 代码必须使用4个空格来缩进,不能使用制表符。

  • 线长绝不能有硬性限制;软限制必须为120个字符;每行不得超过80个字符。

  • namespace声明后必须有一个空白行,use声明块后必须有一个空白行。

  • 类的开括号必须在下一行,闭括号必须在正文之后的下一行。

  • 方法的右括号必须在下一行,而右括号必须在正文之后的下一行。

  • 必须在所有属性和方法上声明可见性;abstract并且 final必须在可见性之前声明;static必须在可见性之后声明。

  • 控制结构关键字必须在其后有一个空格;方法和函数调用绝不能。

  • 控制结构的开括号必须在同一行上,闭括号必须在主体之后的下一行上。

  • 控制结构的开括号必须在其后没有空格,控制结构的闭括号必须在其前没有空格。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值