资讯专栏INFORMATION COLUMN

PSR-1: 基础编码规范

Pluser / 2225人阅读

摘要:源代码文件必须只用不带的编码。类常量必须全部使用大写字母和下划线进行声明。方法名必须声明为样式。类名必须声明为的形式。面向或更高版本的代码必须使用正式的命名空间。不论使用了哪一种风格,它应该在一个合理的范围内具有一致性。

翻译:薛粲
授权许可:CC BY-NC 4.0

这份文档是《PSR-1: Basic Coding Standard》的非官方译文。

这份标准文档阐述了那些需要考虑的标准的编写代码的原则,用于确保在共享 PHP 代码时技术上具备较高层次的互操作性。

英文原文使用的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 以及 "OPTIONAL" 遵循 RFC 2119 的描述。译文中根据上下文可能会使用不同的词汇来对应这些关键词,并加粗显示。

1. 概述

文件必须只用 标记。

PHP 源代码文件必须只用不带 BOM 的 UTF-8 编码。

一个文件应该或者用于声明各种符号(类、函数、常量等),或者发生作用(例如产生输出、修改 .ini 设置等)但不应该同时做上述两件事情。

命名空间和类必须遵循一条关于自动加载的 PSR,即 PSR-0 或 PSR-4。

类名必须声明为 StudlyCaps 样式。

类常量必须全部使用大写字母和下划线进行声明。

方法名必须声明为 camelCase 样式。.

2. 文件 2.1 PHP 标记

PHP 代码必须使用长的 标记或者短的用于输出的 标记;不得使用其它种类的标记。

2.2 字符编码

PHP 源代码必须使用不带 BOM 的 UTF-8 编码。

2.3 副作用

一个文件应该是:或者用于声明新的符号(类、函数、常量等)的,同时并不导致其它副作用;或者用于执行一些会产生副作用的逻辑。但是,一个文件不应该既声明新的符号,又执行产生副作用的逻辑。

短语“副作用”在这里指的是执行那些不直接与声明类、函数、常量等相关的逻辑,merely from including the file.

“副作用”包括但不限于:产生输出、明确的使用 requireinclude,连接外部服务、修改 ini 设置、抛出错误或异常、修改全局或静态变量以及读写文件等。

下面的示例既包含了声明又执行了产生副作用的逻辑,换句话说,这里例子是应该避免的:


";

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

下面的示例只包含声明而没有产生副作用,也就是说是可以借鉴的例子:


3. 命名空间和类名

命名空间和类必须遵循一份自动加载 PSR 规范:PSR-0 或 PSR-4。

这意味着每个类在一个只属于它自己的文件中,并且至少在一层命名空间——即最顶层的提供商名——之中。

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

面向 PHP 5.3 或更高版本的代码必须使用正式的命名空间。

例如:


面向 PHP 5.2 或更早版本的代码应该使用以 Vendor_ 开始的伪命名空间的惯例:


4. 类常量、属性和方法

术语“类”在这里涵盖了类、接口和 trait。

4.1 常量

类常量必须被定义为全部由大写字母、数字和下划线组成,例如:


4.2 属性

这份指南故意规避了对属性名风格的建议,不论采用 $StudlyCaps$camelCase 或者 $under_score 均可。

不论使用了哪一种风格,它应该在一个合理的范围内具有一致性。这样的范围可以是开发商级别、包级别、类级别或者是方法级别的。

4.3 方法名

方法必须采用 camelCase() 风格的命名。

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

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

相关文章

  • PSR-1 Basic Coding Standard(译)-- 基础编码规范

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

    darryrzhong 评论0 收藏0
  • PHP中对PSR-1PSR-2规范理解

    摘要:目前已表决通过了套标准,已经得到大部分框架的支持和认可。类中的常量所有字母都必须大写,单词间用下划线分隔方法名称必须符合式的小写开头驼峰命名规范。日志接口规范详见自动加载规范详见缓存接口规范详见消息接口规范详见,暂无中文翻译 PHP-FIG 在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG。就是这个联盟组织发明和创造了PSR-[0-4]规范 ...

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

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

    FuisonDesign 评论0 收藏0
  • PSR-2:编码样式指南

    摘要:编码样式指南翻译薛粲授权许可这份文档是的非官方译文。编码样式指南扩展和扩充了基础编码规范。概述代码必须遵循一份编码样式指南。行不得对行宽设置硬性限制。对行宽的软性限制必须是个字符超出时自动样式检查必须发出警告但不得产生错误。 PSR-2:编码样式指南 翻译:薛粲授权许可:CC BY-NC 4.0 这份文档是《PSR-2: Coding Style Guide》的非官方译文。 《PSR-...

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

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

    tuomao 评论0 收藏0

发表评论

0条评论

Pluser

|高级讲师

TA的文章

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