摘要:注本文算是笔者对规范翻译学习笔记,之后会陆续翻译剩余的规范,可能翻译的有错误的地方,希望读者能够指正,非常感谢什么是是标准建议的简写,是由组织框架交互操作组织提出。的工作是寻找项目之间的共性,以及让开发者能更好协同工作的方式。
注:本文算是笔者对PSR规范翻译/学习笔记,之后会陆续翻译剩余的规范,可能翻译的有错误的地方,希望读者能够指正,非常感谢.
什么是PSR?PSR是PHP Standards Recommendations(PHP标准建议) 的简写,是由PHP-FIG组织(PHP Framework Interop Group-PHP框架交互操作组织)提出。PHP-FIG的工作是寻找项目之间的共性,以及让开发者能更好协同工作的方式。读者可能在浏览一些PHP技术文章的时候,可能会看到PSR-1,PSR-2,PSR-4,PSR-7等,这些是PHP-FIG的标准建议,这些标准建议的命名构成是以"PSR-"+"序号",每个PHP_FIG标准建议都是为了解决大部分框架频繁遇到的一个特定的问题,而与此同时框架不需要自己再去重复解决问题,而是遵循PSR标准建议,采纳共享的解决方案.
目前PSR规范有哪些?PSR规范
PSR-1: Basic Coding Standard
PSR-2: Coding Style Guide
PSR-3: Logger Interface
PSR-4: Autoloader
PSR-6: Caching Interface
PSR-7: HTTP message interfaces
PSR-11: Container interface
PSR-13: Link definition interfaces
PSR-16: Common Interface for Caching Libraries
什么是 PSR-1?原文链接:PSR-1 Basic Coding Standard
Aims to ensure a high level of technical interoperability between shared PHP code.
PSR-1 就是为了能够使共享的PHP代码之间有高度的互操作性.
OverView (概览)PHP文件(MUST)必须只使用
PHP文件(MUST)必须只能使用无BOM头的UTF-8编码格式.
PHP文件(SHOULD)应该要么声明 classe,functions。constants 等等,或者 general ouput(通用输出?),改变php.ini的配置等等,但是(SHOULD Not)不应该两个都有.
命名空间和类(MUST)必须要遵循自动加载的PSR规范[PSR-0,PSR-4];
类名明明(MUST)必须以大驼峰式.
类中的常量的命名(MUST)必须为以下划线分割的大写字母.
方法名(MUST)必须为小驼峰式.
PHP TagsPHP代码(MUST)必须使用长标签 或者 短标签 = ?>;(MUST NOT)不能有其他类型的写法.
Character EncodingPHP代码(MUST)必须只使用无BOM头的UTF-8编码格式.
Side Effects一个PHP文件(SHOULD)必须要声明一些class,function,constant等,并且没有side effects (执行逻辑),或者(SHOULD)应该有side effects(执行逻辑),但是(SHOULD NOT)不应该两个都同时存在.
"side effects"代表的就是和声明class,function,constant等不直接相关联的执行逻辑,仅仅来自这个包含的文件。
"Side effects" 包含以下操作,但不仅限于此:general output(通用输出), "require"和"include"的使用,连接外部服务,修改php.ini的设置,触发错误或者抛出异常,修改全局或者静态变量,读取或者写入文件操作等等.
以下是一个我们要避免的例子,就是一个具有"declarations"和side effects的PHP文件。
"; // declaration function foo() { // function body }
以下是一个是正确的例子,只包含了"declaraion"没有"side effects".
Namespace and Class NamesThis means each class is in a file by itself, and is in a namespace of at least one level: a top-level vendor name
命名空间和类(MUST)必须要遵循自动加载规范【PSR-0,PSR-4】,这意味着每个类在一个文件中,并且至少在一个level的命名空间中:最高level的vendor名称.
类名命名必须以大驼峰式.
PHP5.3及以后版本中,写代码(MUST)必须使用正式的命名空间.
For example:
PHP5.2.x以及之前的版本(SHOULD)应该使用pseudo-namespacing(伪命名空间)的惯例:在类名前+"Vendor_"前缀.
The term “class” refers to all classes, interfaces, and traits.
本文中的术语class,代表的是所有的class,interface,traits。
Constants类中的常量(MUST)必须为以下划线分割的大写字母.
for example:Properties对于类的属性,本文档有意省略了对属性名的命名方式.(大驼峰/小驼峰/下划线等)
无论采用什么样的命名方式(SHOULD)应该和其所在scope相一致.scope 可能为vendor级别,package级别,class级别,或者method级别.
Methods方法名(MUST)必须声明为小驼峰式.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/23342.html
摘要:公认规范总结规范中文版大部分来源翻译部分包含例子,附录包含了一些规范的实现基本编码标准编码风格指南日志接口规范自动加载规范规范英文版未使用草案已弃用规范原理实现实现自动加载实现原理资料来源与参考 PSR公认规范总结 PSR规范中文版(大部分来源google翻译)(cn) 部分psr包含例子,附录包含了一些规范的实现 PSR-1:基本编码标准 PSR-2:编码风格指南 PSR-3:日志...
摘要:标准规范简介是的简写,由组织制定的规范,是开发的实践标准。具体标准有有了统一编码风格规范,更有利于查看和学习各个框架或类库,不不需要每次都适应新的编码风格。同时在开发团队内部使用统一的编码规范更有利于代码审查版本控制团队内部交流。 PHP 标准规范 PSR PSR 简介 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP...
摘要:原文发表在我的个人网站利用一步一步构建自己的框架一基础准备一统天下的时代已经到来白岩松一个时代结束了另一个时代开始了。框架可互用性小组,简称,成立于年。 原文发表在我的个人网站 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备 『Composer 一统天下的时代已经到来!』 ——白岩松 一个时代结束了,另一个时代开始了。 Framework ...
摘要:源代码文件必须只用不带的编码。类常量必须全部使用大写字母和下划线进行声明。方法名必须声明为样式。类名必须声明为的形式。面向或更高版本的代码必须使用正式的命名空间。不论使用了哪一种风格,它应该在一个合理的范围内具有一致性。 翻译:薛粲授权许可:CC BY-NC 4.0 这份文档是《PSR-1: Basic Coding Standard》的非官方译文。 这份标准文档阐述了那些需要考虑的标...
摘要:首先你应该是在用以上的版本,如果版本在这之下,是时候该升级了。按照其官网的说法,这个组织的目的并不是告诉你你应该怎么做,只是一些主流的框架之间相互协商和约定。和没有出现在以上的列表中,是因为还没有投票通过。不要被这些话所困扰。 首先你应该是在用 PHP 5.3 以上的版本,如果 PHP 版本在这之下,是时候该升级了。我建议如果有条件,最好使用最新的版本。 你应该看过 PHP The R...
阅读 3652·2021-10-11 10:58
阅读 2245·2021-10-08 10:05
阅读 2023·2021-09-27 13:34
阅读 3558·2019-08-30 15:53
阅读 2723·2019-08-30 14:02
阅读 3551·2019-08-29 16:55
阅读 614·2019-08-29 15:41
阅读 1061·2019-08-29 15:23