PHP 标准规范

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 标准内容
状态序号标题撰稿者协调者发起人
X0自动加载规范Matthew Weier O'PhinneyN/AN/A
A1基础编码规范Paul M. JonesN/AN/A
A2编码风格规范Paul M. JonesN/AN/A
A3日志接口规范Jordi BoggianoN/AN/A
A4自动加载规范Paul M. JonesPhil SturgeonLarry Garfield
D5PHPDoc 标准Mike van RielVacantVacant
A6缓存接口规范Larry GarfieldPaul DragoonisRobert Hafner
A7HTTP 消息接口规范Matthew Weier O'PhinneyBeau SimensenPaul M. Jones
D8Huggable 接口Larry GarfieldVacantPaul M. Jones
D9项目安全问题公示Lukas Kahwe SmithKorvin SzantoLarry Garfield
D10项目安全上报方法Lukas Kahwe SmithLarry GarfieldKorvin Szanto
D11服务容器接口Matthieu Napoli, David NégrierPaul M. JonesVacant
D12全量编码风格规范Korvin SzantoAlexander MakarovRobert Deutz
D13超媒体链接Larry GarfieldMatthew Weier O'PhinneyEvert Pot

说明: A (Accepted) = 已通过 | D (Draft) = 起草中 | R (Review) = 审查中 | X (Deprecated) = 已废弃。

PSR 解决的3个问题

AUTOLOADING

​ 在此之前,各个框架或厂商各自做自己的自动加载,有的使用 void __autoload ( string $class ) 有的使用 bool spl_autoload_register() 各自命名空间和文件目录对应规则不一致,需要熟悉各个框架和类库的自动加载机制才能顺利使用。

​ 有了统一的自动加载规范(统一的命名空间与文件路径映射规范)之后,只需要遵循同一个自动加载机制就可以使用各个框架和类库,甚至不用知道他们内部具体如何实现自动加载。

具体 PSR 标准有:

  1. PSR-4: Improved Autoloading
INTERFACES

​ 在此之前,没有一些统一的规范接口,同样的功能(例如Log)各个框架或类库都自己实现,一致都在重新制造轮子,有了一些统一的接口,只要一个厂商或框架实现了统一接口,其它厂商或框架不需要重新实现,直接使用即可。

具体 PSR 标准有:

  1. PSR-3: Logger Interface
  2. PSR-6: Caching Interface
  3. PSR-7: HTTP Message Interfaces
  4. PSR-11: Container Interface
  5. PSR-13: Hypermedia Links
  6. PSR-15: HTTP Handlers
  7. PSR-16: Simple Cache
CODING STYLES

​ 有了统一编码风格规范,更有利于查看和学习各个框架或类库,不不需要每次都适应新的编码风格。

同时在开发团队内部使用统一的编码规范更有利于代码审查、版本控制、团队内部交流。

具体 PSR 标准有:

  1. PSR-1: Basic Coding Standard
  2. PSR-2: Coding Style Guide

辅助工具

phpcs

PHP 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 支持哪些编码规范

phpcs -i
图片描述

详细操作

查看官方文档:PHP CodeSniffer WIKi

php-cs-fixer

PHP 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值