摘要:标准规范简介是的简写,由组织制定的规范,是开发的实践标准。具体标准有有了统一编码风格规范,更有利于查看和学习各个框架或类库,不不需要每次都适应新的编码风格。同时在开发团队内部使用统一的编码规范更有利于代码审查版本控制团队内部交流。
PHP 标准规范 PSR PSR 简介
PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。
PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于 Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework 等),虽然不是「官方」组织,但也代表了大部分的 PHP 社区。
项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。
以上内容来源:https://github.com/php-fig
PSR 标准内容状态 | 序号 | 标题 | 撰稿者 | 协调者 | 发起人 |
---|---|---|---|---|---|
X | 0 | 自动加载规范 | Matthew Weier O"Phinney | N/A | N/A |
A | 1 | 基础编码规范 | Paul M. Jones | N/A | N/A |
A | 2 | 编码风格规范 | Paul M. Jones | N/A | N/A |
A | 3 | 日志接口规范 | Jordi Boggiano | N/A | N/A |
A | 4 | 自动加载规范 | Paul M. Jones | Phil Sturgeon | Larry Garfield |
D | 5 | PHPDoc 标准 | Mike van Riel | Vacant | Vacant |
A | 6 | 缓存接口规范 | Larry Garfield | Paul Dragoonis | Robert Hafner |
A | 7 | HTTP 消息接口规范 | Matthew Weier O"Phinney | Beau Simensen | Paul M. Jones |
D | 8 | Huggable 接口 | Larry Garfield | Vacant | Paul M. Jones |
D | 9 | 项目安全问题公示 | Lukas Kahwe Smith | Korvin Szanto | Larry Garfield |
D | 10 | 项目安全上报方法 | Lukas Kahwe Smith | Larry Garfield | Korvin Szanto |
D | 11 | 服务容器接口 | Matthieu Napoli, David Négrier | Paul M. Jones | Vacant |
D | 12 | 全量编码风格规范 | Korvin Szanto | Alexander Makarov | Robert Deutz |
D | 13 | 超媒体链接 | Larry Garfield | Matthew Weier O"Phinney | Evert Pot |
说明: A (Accepted) = 已通过 | D (Draft) = 起草中 | R (Review) = 审查中 | X (Deprecated) = 已废弃。
PSR 解决的3个问题 AUTOLOADING 在此之前,各个框架或厂商各自做自己的自动加载,有的使用 void __autoload ( string $class ) 有的使用 bool spl_autoload_register() 各自命名空间和文件目录对应规则不一致,需要熟悉各个框架和类库的自动加载机制才能顺利使用。
有了统一的自动加载规范(统一的命名空间与文件路径映射规范)之后,只需要遵循同一个自动加载机制就可以使用各个框架和类库,甚至不用知道他们内部具体如何实现自动加载。
具体 PSR 标准有:
PSR-4: Improved Autoloading
INTERFACES 在此之前,没有一些统一的规范接口,同样的功能(例如Log)各个框架或类库都自己实现,一致都在重新制造轮子,有了一些统一的接口,只要一个厂商或框架实现了统一接口,其它厂商或框架不需要重新实现,直接使用即可。
具体 PSR 标准有:
PSR-3: Logger Interface
PSR-6: Caching Interface
PSR-7: HTTP Message Interfaces
PSR-11: Container Interface
PSR-13: Hypermedia Links
PSR-15: HTTP Handlers
PSR-16: Simple Cache
CODING STYLES 有了统一编码风格规范,更有利于查看和学习各个框架或类库,不不需要每次都适应新的编码风格。
同时在开发团队内部使用统一的编码规范更有利于代码审查、版本控制、团队内部交流。
具体 PSR 标准有:
PSR-1: Basic Coding Standard
PSR-2: Coding Style Guide
辅助工具 phpcsPHP Code Sniffer 简称 phpcs ,主要用来检查 PHP 代码是否符合 PSR-2 的标准。如果 PHP 代码中存在不符合 PSR-2 标准的部分,会产生一份错误报告,便于我们检查哪些代码不符合标准。
composer global require "squizlabs/php_codesniffer=*"
phpcs --version
phpcs --standard=PSR2 PHP文件(或目录)
注意 phpcs 默认使用的编码风格标注是 PEAR ,所以如果要检查 PSR-2 标准需要明确指定(--standard=PSR2)。
phpcs -i
详细操作
查看官方文档:PHP CodeSniffer WIKi
php-cs-fixerPHP Coding Standards Fixer 简称 php-cs-fixer, 可以用来帮我修正代码编码风格使其符合 PSR-2 规范。
composer global require friendsofphp/php-cs-fixer
php-cs-fixer --version
php-cs-fixer fix php /path/to/dir(or /path/to/file)
详细操作
查看官方文档:PHP-CS-Fixer
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/28806.html
摘要:今天这篇分享将简单地梳理一下规范,并介绍一个代码检查工具,结合以及进行实践。目前流行的一些规范是的简写,由组织制定的规范,是开发的实践标准。目前已表决通过了套标准,已经得到大部分框架的支持和认可。 > 作为一个新手,写出规范的代码也是一门必修课,除了阅读相应的代码规范文档之外,充分利用相关的工具能使得进阶之路事半功倍。今天这篇分享将简单地梳理一下 PHP 规范,并介绍一个代码检查工具 ...
摘要:前言在开始之前,欢迎关注我自己的博客这篇文章是对自动加载功能的一个总结,内容涉及的自动加载功能的命名空间的与标准等内容。要实现第一步,第二步的功能,必须在开发时约定类名与磁盘文件的映射方法,只有这样我们才能根据类名找到它对应的磁盘文件。 前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn 这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能、P...
摘要:本文目的是通过自己写的一个的简单的库花密密码生成工具,来学习我认为的库开发的一些规范,以及上持续构建你的项目的一些方法。给自己的项目开启持续构建。包发布以及当你的代码完成后,测试完成后。 本文目的是通过自己写的一个php的简单的库(花密密码生成工具), 来学习我认为的php库开发的一些规范,以及github上持续构建你的项目的一些方法。其实是为了显示下边一系列的的徽章 showImg(...
摘要:它包含两类脚本,和地址脚本对文件定义了一系列的代码规范通常使用官方的代码规范标准,比如的,能够检测出不符合代码规范的代码并发出警告或报错可设置报错等级。脚本能自动修正代码格式上不符合规范的部分。 Last-Modified: 2019年5月10日13:59:27 参考链接 PHP开发规范之使用phpcbf脚本自动修正代码格式 在PhpStorm中使用PSR2编码规范phpcbf脚本自...
摘要:的使命是实现框架之间的互操作性。个人和官方都认为开发者应该遵循更为严格的代码标准,在现代的生态系统中,风格统一,可以更好的让其他开发者理解代码。记录的消息用于诊断检查和排除应用中的操作稳定性和性能方面的问题。 原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢~ PSR是PHP Standards Recommendation的简称,意为PHP推荐标...
阅读 2452·2021-11-15 18:14
阅读 1681·2021-10-14 09:42
阅读 3670·2021-10-11 10:58
阅读 3909·2021-10-09 09:44
阅读 2366·2021-09-26 09:55
阅读 2389·2021-09-24 10:38
阅读 1997·2021-09-04 16:48
阅读 3239·2021-09-02 15:21