资讯专栏INFORMATION COLUMN

PHP中对PSR-1、PSR-2规范理解

lieeps / 2955人阅读

摘要:目前已表决通过了套标准,已经得到大部分框架的支持和认可。类中的常量所有字母都必须大写,单词间用下划线分隔方法名称必须符合式的小写开头驼峰命名规范。日志接口规范详见自动加载规范详见缓存接口规范详见消息接口规范详见,暂无中文翻译

PHP-FIG

在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG。就是这个联盟组织发明和创造了PSR-[0-4]规范

FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于
2009 年,从那开始也选取了很多其他成员进来,虽然不是 “官方” 组织,但也代表了社区中不小的一块。
项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了
PHP 的发展,解决这个程序设计师由来已久的困扰。

目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。

1 基础编码规范 PSR-1
2 编码风格规范 PSR-2
3 日志接口规范 PSR-3
4 自动加载规范 PSR-4
6 缓存接口规范 PSR-6
7 HTTP 消息接口规范


基础编码规范

PHP代码文件 必须 标签开始;

PHP代码文件 必须 以 不带 BOM 的 UTF-8 编码;

PHP代码中 应该 只定义类、函数、常量等声明,或其他会产生 副作用 的操作(如:生成文件输出以及修改 .ini配置文件等),二者只能选其一;

「副作用」(side effects) 一词的意思是,仅仅通过包含文件,不直接声明类、函数和常量等,而执行的逻辑操作。
「副作用」包含却不仅限于:

生成输出

直接的 require 或 include

连接外部服务

修改 ini 配置

抛出错误或异常

修改全局或静态变量

读或写文件等

以下是一个 反例,一份包含「函数声明」以及产生「副作用」的代码:


";

// 声明函数
function foo()
{
    // 函数主体部分
}

下面是一个仅包含声明的示例文件;即应提倡的例子:


命名空间以及类 必须 符合 PSR 的自动加载规范:[PSR-4]() 中的一个;

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

类的属性命名 可以 遵循:

大写开头的驼峰式 ($StudlyCaps)

小写开头的驼峰式 ($camelCase)

下划线分隔式 ($under_score)

本规范不做强制要求,但无论遵循哪种命名方式,都 应该 在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。

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


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


编码风格规范

代码必须遵守 PSR-1。

代码必须使用4个空格来进行缩进,而不是用制表符。

一行代码的长度不建议有硬限制;软限制必须为120个字符,建议每行代码80个字符或者更少。

在命名空间(namespace)的声明下面必须有一行空行,并且在导入(use)的声明下面也必须有一行空行。

类(class)的左花括号必须放到其声明下面自成一行,右花括号则必须放到类主体下面自成一行。

方法(method)的左花括号必须放到其声明下面自成一行,右花括号则必须放到方法主体的下一行。

 $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // 方法主体
    }
}

所有的属性(property)和方法(method)必须有可见性声明;抽象(abstract)和终结(final)声明必须在可见性声明之前;而静态(static)声明必须在可见性声明之后。


在控制结构关键字的后面必须有一个空格;而方法(method)和函数(function)的关键字的后面不可有空格。

控制结构的左花括号必须跟其放在同一行,右花括号必须放在该控制结构代码主体的下一行。

控制结构的左括号之后不可有空格,右括号之前也不可有空格。



日志接口规范

详见


自动加载规范

详见


缓存接口规范

详见


HTTP 消息接口规范

详见,暂无中文翻译

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28521.html

相关文章

  • PHP-PSR 现代PHPer的开发规范

    摘要:的使命是实现框架之间的互操作性。个人和官方都认为开发者应该遵循更为严格的代码标准,在现代的生态系统中,风格统一,可以更好的让其他开发者理解代码。记录的消息用于诊断检查和排除应用中的操作稳定性和性能方面的问题。 原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢~     PSR是PHP Standards Recommendation的简称,意为PHP推荐标...

    zebrayoung 评论0 收藏0
  • php-psr-chinese psr规范总结

    摘要:公认规范总结规范中文版大部分来源翻译部分包含例子,附录包含了一些规范的实现基本编码标准编码风格指南日志接口规范自动加载规范规范英文版未使用草案已弃用规范原理实现实现自动加载实现原理资料来源与参考 PSR公认规范总结 PSR规范中文版(大部分来源google翻译)(cn) 部分psr包含例子,附录包含了一些规范的实现 PSR-1:基本编码标准 PSR-2:编码风格指南 PSR-3:日志...

    tuomao 评论0 收藏0
  • PSR-1 Basic Coding Standard(译)-- 基础编码规范

    摘要:注本文算是笔者对规范翻译学习笔记,之后会陆续翻译剩余的规范,可能翻译的有错误的地方,希望读者能够指正,非常感谢什么是是标准建议的简写,是由组织框架交互操作组织提出。的工作是寻找项目之间的共性,以及让开发者能更好协同工作的方式。 注:本文算是笔者对PSR规范翻译/学习笔记,之后会陆续翻译剩余的规范,可能翻译的有错误的地方,希望读者能够指正,非常感谢. 什么是PSR?       PSR是...

    darryrzhong 评论0 收藏0
  • PHP 标准规范

    摘要:标准规范简介是的简写,由组织制定的规范,是开发的实践标准。具体标准有有了统一编码风格规范,更有利于查看和学习各个框架或类库,不不需要每次都适应新的编码风格。同时在开发团队内部使用统一的编码规范更有利于代码审查版本控制团队内部交流。 PHP 标准规范 PSR PSR 简介 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP...

    FuisonDesign 评论0 收藏0
  • PHPPSR简要规范

    摘要:是一系列关于开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,做个简单地必要规范的记录。所有文件必须使用作为行的结束符。 PSR是一系列关于PHP开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,做个简单地必要规范的记录。(就是个搬砖的。。。)...

    Steve_Wang_ 评论0 收藏0

发表评论

0条评论

lieeps

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<