资讯专栏INFORMATION COLUMN

【PHP】PSR简要规范

Steve_Wang_ / 3350人阅读

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

PSR是一系列关于PHP开发的规范,分有好几个版本,自己学的也较为肤浅,但还是希望能时常查看规范,为了方便记忆和遵循,我把关键词为必须的捡拾出来,做个简单地必要规范的记录。(就是个搬砖的。。。)
https://github.com/PizzaLiu/PHP-FIG
http://segmentfault.com/a/1190000002521577

官方发布文件版本

PSR-0(已弃用)

PSR-1 基本代码规范

PSR-2 代码风格规范

PSR-2 补充文档

PSR-3 日志接口规范

PSR-4 自动载入

PSR-5PSR-6投票还未通过

必须 PSR-1 基本代码规范

PHP代码文件必

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

命名空间以及类必须符合 PSR 的自动加载规范:PSR-0 或 PSR-4 中的一个

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

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

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

PHP代码必须使用 长标签 短输出标签; 一定不可使用其它自定义标签。

命名空间以及类的命名必须遵循 PSR-0.

PHP 5.3及以后版本的代码必须使用正式的命名空间

每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)

PSR-2 代码风格规范

代码必须遵循 PSR-1 中的编码规范 。

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

备注: 使用空格而不是tab键缩进的好处在于, 避免在比较代码差异、打补丁、重阅代码以及注释时产生混淆。 并且,使用空格缩进,让对齐变得更方便。

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

类的开始花括号({)必须写在函数声明后自成一行结束花括号(})也必须写在函数主体后自成一行

方法的开始花括号({)必须写在函数声明后自成一行结束花括号(})也必须写在函数主体后自成一行

类的属性和方法必须 添加访问修饰符(private、protected 以及 public) abstract 以及 final 必须声明在访问修饰符之前,而 static 必须声明在访问修饰符之后

控制结构的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有

控制结构的开始花括号({)必须写在声明的同一行,而结束花括号(})必须写在主体后自成一行

控制结构的开始左括号后和结束右括号前,都一定不能有空格符

所有PHP文件必须使用Unix LF (linefeed)作为行的结束符

所有PHP文件必须以一个空白行作为结束

纯PHP代码文件必须省略最后的 ?> 结束标签

每行一定不能存在多于一条语句

非空行后一定不能有多余的空格符

PHP所有 关键字必须全部小写

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

PSR-3 日志接口规范 PSR-4 自动加载规范

一个完整的类名需具有以下结构:

<命名空间>(<子命名空间>)*<类名>
完整的类名必须要有一个顶级命名空间,被称为 "vendor namespace";

完整的类名可以有一个或多个子命名空间;

完整的类名必须有一个最终的类名;

完整的类名中任意一部分中的下滑线都是没有特殊含义的;

完整的类名可以由任意大小写字母组成;

所有类名都必须是大小写敏感的。

当根据完整的类名载入相应的文件

完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“文件基目录”相对应;

紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符。

末尾的类名必须与对应的以 .php 为后缀的文件同名。

自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。
建议(更多请查看详细文档) PSR-1

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

类的属性命名可以遵循 大写开头的驼峰式 ($StudlyCaps)、小写开头的驼峰式 ($camelCase) 又或者是 下划线分隔式 ($under_score),本规范不做强制要求,但无论遵循哪种命名方式,都应该在一定的范围内保持一致。

PSR-2

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

空行可以使得阅读代码更加方便以及有助于代码的分块。

代码示例 PSR-2
 $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // method body
    }
}

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

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

相关文章

  • PHP回顾之创建自己的Composer包

    摘要:想要更好的利用协同工作,学会创建自己的包是一项必不可少的技能。编辑项目的或,增加一项配置,例如以上配置使用中国全量镜像网站作为默认中央仓库。创建自己的包创建一个包只需两步填写包描述信息写代码。通过简单两步,我们创建的自己的包。 转载请注明文章出处:https://tlanyan.me/php-review... PHP回顾系列目录 PHP基础 web请求 cookie web响应 ...

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

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

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

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

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

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

    tuomao 评论0 收藏0
  • PSR-4——新鲜出炉的PHP规范

    摘要:制定的规范,简称,是开发的事实标准。原本有四个规范,分别是自动加载基本代码规范代码样式日志接口年底,新出了第个规范。区别在于的规范比较干净,去除了兼容以前版本的内容,有一点升级版的感觉。 FIG制定的PHP规范,简称PSR,是PHP开发的事实标准。 PSR原本有四个规范,分别是: PSR-0 自动加载 PSR-1 基本代码规范 PSR-2 代码样式 PSR-3 日志接口 20...

    Fundebug 评论0 收藏0

发表评论

0条评论

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