PSR-1: 基本编码规范

一、能愿动词

MUST 必须
MUST NOT 一定不能

SHOULD 应该
SHOULD NOT 不应该

二、概览

  • 文件必须(MUST)只用<?php或者<?=标签。
  • php代码必须使用UTF-8 without BOM编码。
  • 文件应该只用于声明符号(symbols),例如类,方法,常量等,或者只用来做有边际影响的事(side-effects),例如创建输出,修改配置文件等,但是不应该同时做这两件事。
  • 命名空间和类必须遵循一个“自动加载”规范:[PSR-0, PSR-4]。
  • 类名称必须声明为StudlyCaps的形式,即名称中每个单词首字母大写。
  • 类常量必须只使用大写字母,用下划线来做单词间隔离。
  • 方法名称必须声明为camelCase的形式。

三、文件

php标签

php代码必须使用<?php ?>标签或者短输出标签<?= ?>一定不能使用其他类型的标签。

字符编码

php代码必须使用UTF-8 without BOM编码。

边际影响

一个文件应该用来定义新符号(类, 方法, 常量等)并且不会带来边际影响,或者它应该执行可能带来边际影响的逻辑代码,但是不应该同时做这两件事。

边际影响意思是业务代码的执行不会直接涉及到声明类,方法,常量等,而是仅仅来自包含文件

边际影响包含但是不限于:创建输出,明确的使用require或者include,连接外部服务修改配置文件,抛出错误或者异常,修改全局或者静态变量,从文件读取或者写入文件等等。

下面是一个同时包含声明和边际影响的例子;
换句话说,一个应该避免的例子:

<?php
// 边际影响:修改配置文件
ini_set('error_reporting', E_ALL);

// 边际影响:加载文件
include "file.php";

// 边际影响:创建输出
echo "<html>\n";

// 声明
function foo()
{
    // function body
}

下面是一个包含声明但是没有边际影响的例子;也就是说,一个应该被效仿的例子:

<?php
// 声明
function foo()
{
    // function body
}

// 条件控制声明不是一个边际影响
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}

四、命名空间和类名称

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

这意味着每一个类在一个单独的文件中,并且在至少一个层级的命名空间中:一个顶级的包名称。

类名称必须声明为StudlyCaps的形式。

php5.3以及以后版本的代码必须使用正式的命名空间。

例如:

<?php
// php 5.3版本以后
namespace Vendor\Model;

class Foo
{
}

php5.2.x及以前的版本应该使用虚拟命名空间惯例,将Vendor_前缀添加到类名称前。

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

五、类常量,属性和类方法

术语“类”指所有类,接口和trait

常量

类常量必须使用大写字母定义,使用下划线来分隔单词。
例如:

<?php
namespace Vendor\Model;

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

属性

这个指导将回避使用$StudlyCaps$camelCase,还是$under_score属性命名的争论。

无论使用任何命名习惯,在一个合理的范围应该被保持一致。这个合理的范围可能是vendor级别,包级别,类级别或者方法级别。

方法

方法名称应该声明为camelCase()的形式。

原文地址PSR-1: 基本编码规范
文章由ian有话说(https://iian.xyz)原创发表,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/JoyZhi/article/details/82955157
今日推荐