PHP 规范

PHP 代码质量检查那些事 一、简介 你是否因为一遍又一遍地捍卫代码质量而感到厌倦?该如何保证 PHP 的代码质量,我们首先想到的是要遵循代码规范,良好的代码风格和编码习惯,虽然说 PSR 给出了良好的规范标准,但是光靠人工遵守难免会把握不到位,我们常说:立规范不如做工具。本篇来介绍一下 PHP 可用的静态代码质量检查工具,可以提前在你本地编辑器编写代码的时候就对你的 "Bad Coding" 代码做出提醒和预警,防止代码部署后,在运行时才发现问题而造成事故。 二、代码质量的检查层次 我把代码质量划分了四个检查层次:基础语法 阅读详情

> 作为一个新手,写出规范的代码也是一门必修课,除了阅读相应的代码规范文档之外,充分利用相关的工具能使得进阶之路事半功倍。今天这篇分享将简单地梳理一下 PHP 规范,并介绍一个代码检查工具 Code Sniffer,结合 PHPStorm 以及 GIT 进行实践。

PHP 规范

为什么需要统一代码规范?

PHP 社区百花齐放,拥有大量的函数库、框架和组件。PHP 开发者通常会在自己的项目中使用若干个外部库,因此 PHP 代码遵循(尽可能接近)同一个代码风格就非常重要,这让开发者可以轻松地将多个代码库整合到自己的项目中。

目前流行的一些规范:

  • 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 的发展,解决这个程序设计师由来已久的困扰。

    目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。

    详细介绍请参考官方说明:

  • PEAR

    The PEAR Coding Standards apply to code that is part of the official PEAR distribution. Coding standards often abbreviated as CS among developers and they aim to keep code consistent to be easily readable and maintainable by most of PEAR folks.

    参考官方说明

  • Zend

    Zend Framework 使用的代码规范。

    参考官方说明

Code Sniffer

官方网站:https://github.com/squizlabs/PHP_CodeSniffer

PHP_CodeSniffer is a set of two PHP scripts; the main phpcs script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second phpcbf script to automatically correct coding standard violations. PHP_CodeSniffer is an essential development tool that ensures your code remains clean and consistent.

简单来说,就是两个小工具,

  • phpcs (PHP Code Standard),用来检查代码规范
  • phpcbf (PHP Code Beautifier and Fixer),用来自动修复代码

安装 Code Sniffer

参考官方文档

使用 Code Sniffer

执行 phpcs 检查代码规范

$ phpcs /path/to/code/myfile.php

FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 5 ERRORS AFFECTING 4 LINES
--------------------------------------------------------------------------------
 2 | ERROR | [ ] Missing file doc comment
 3 | ERROR | [x] TRUE, FALSE and NULL must be lowercase; expected "false" but
   |       |     found "FALSE"
 5 | ERROR | [x] Line indented incorrectly; expected at least 4 spaces, found 1
 8 | ERROR | [ ] Missing function doc comment
 8 | ERROR | [ ] Opening brace should be on a new line
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

Code-Sniffer 默认使用 PEAR 代码规范。可以使用 --standard=xxx 指定。

$ phpcs --standard=PSR2 /path/to/code/myfile.php

或者修改默认配置

$ phpcs --config-set default_standard Squiz

执行 phpcbs 修复代码

$ phpcbf /path/to/code
Processing init.php [PHP => 7875 tokens in 960 lines]... DONE in 274ms (12 fixable violations)
    => Fixing file: 0/12 violations remaining [made 3 passes]... DONE in 412ms
Processing config.php [PHP => 8009 tokens in 957 lines]... DONE in 421ms (155 fixable violations)
    => Fixing file: 0/155 violations remaining [made 7 passes]... DONE in 937ms
Patched 2 files
Time: 2.55 secs, Memory: 25.00Mb

更多功能,参考官方文档

与 PHP Storm 集成

将 Code Sniffer 与 PHP Storm 集成,可以使 IDE 实时显示代码的规范情况,提醒开发人员修改代码,长期使用,可以让开发人员养成非常规范的代码习惯。

ide

如何配置?

  1. 为 PHPStorm 配置 Code Sniffer 路径:
    code-sniffer
    code-sniffer
  2. 设置 Inspections

    选择合适的 Coding Standard

利用 GIT Hook 强制代码检查

使用 GIT 的 Pre-Commit Hook,可以在代码被提交之前,强制调用 Code Sniffer 进行代码检查,如果不符合规范,将阻止用户提交代码。

  1. 在项目的 .git/hooks 建立 pre-commit 文件
  2. 写入代码:
    Pre-Commit Gist

试试看:)

PHP PSR规范详解 目前包括以下几个规范:PSR-0(弃用)PSR-1PSR-2PSR-3PSR-41.PSR-0自动加载规范,此规范已被启用-本规范已于2014年10月21日被标记为弃用,目前新的替代规范为【PSR-4】本文是为自动加载器实现通用自动加载所需要遵循的编码规范一个标准的命名空间与类名称的定义必须符合以下结构:\<Vendor Name><Namespace><Namesp... 阅读详情

相关推荐

OpenCV中SGBM中BT代价计算

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_27606639的博客 5977

PHP Beautifier的安装和使用

PHP Beautifier是一个用php编写的php代码美化工具。通过pear可以很方便的安装并使用。 简单介绍下载windows下安装php beautifier和使用它格式化代码的方法: 1.确保php5环境下已经安装了pear,如果没有安装请参考文章《windows下安装pear包管理器》。 2.pear下安装php beautifier:     在上网环境下,C

fableboy的学习点滴 4878

Ubuntu离线情况下安装gcc编译器

Ubuntu离线情况下安装gcc编译器1.系统版本2.安装说明3.异常处理 1.系统版本 (1)Ubuntu系统版本:20.04.1LTS; (2)gcc编译器版本:gcc-9.3.0(下载链接为https://download.youkuaiyun.com/download/qq_18350351/13762214); 当前可找到的gcc最新版本为gcc-10,但是笔者在安装gcc-10版本时发现一些依赖项无法安装,因此选取了gcc-9版本。如果是在联网情况下安装,直接使用apt相关的安装指令即可。 2.安装说明 安

GreenHand的博客 3933

php 代码 自动检查,PHP中有什么好的代码自动检查工具吗

我们在php编码的时常常需要对代码进行检查,它自带php -l功能太弱了,只能针对语法错误进行检查。我需要的是一种能在生产环境中使用的检查工具,比如要有检测无用变量,或者直接使用了未经初始化的变量,当然还要能分析出潜在的错误代码,最好还能够检测出一些代码风格问题。这样可以在较大规模开发时,控制部分质量问题。比如Lint这一工具集,它除了最初的c语言版以外,还有其它版本的实现CSS Lint, JS...

weixin_33182922的博客 326

优化QT QML中RTSP流播放延迟:海康摄像头实时监控实践

本文详细探讨了在QT QML中优化海康摄像头RTSP流播放延迟的实践方法。通过调整MediaPlayer缓冲策略、硬件加速、解码器优选等五大技巧,显著降低实时监控场景下的延迟问题。文章还提供了海康摄像头RTSP连接实战代码和避坑指南,帮助开发者快速实现高效流媒体播放。

weixin_28363123的博客 557

【汽车故障诊断2】从标准到实战:解码DTC格式背后的诊断逻辑

本文深入解析汽车诊断故障码(DTC)的格式与逻辑,对比了OBD-II标准(如ISO 15031-6)的5字符格式与UDS协议(ISO 14229-1)下更丰富的3字节格式。文章从国际标准出发,结合实战案例,阐述了DTC如何作为汽车电子系统的“体检报告”,帮助工程师和维修技师精准定位故障,并详细解读了UDS 19服务如何读取和管理DTC状态。

berry的博客 713

几款不错的PHP开发测试工具

几款不错的PHP开发测试工具 当我们经常都要处理象手工代码测试及部署这样枯燥重复的工作时,往往会感到沮丧,我们一直努力想变得高效率,正如DRY原则所说的(译者住:DRY=Don’t Repeat Yourself,不重复原则,参见:http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)。所以为什么不将这样的原则应用到软件开发的其他生命周

hzcyclone的专栏 4177

cocos2dx中DrawNode画线锯齿和非凸多边形填充

记录一下在cocos2dx中使用DrawNode所遇到的2个问题 1.画线锯齿问题 ios版本下,在AppController.mm中设置CCEAGLView的multiSampling和numberOfSamples。如下图 CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]

hello-world 5414

PHP编写规范

PHP编写规范是确保代码可读性、可维护性和一致性的重要准则。遵循规范有助于团队协作和项目长期发展。

LindomTC的博客 827

OpenCV卡尺工具实战:5步搞定工业级圆与直线拟合(附完整C++源码)

本文详细介绍了使用OpenCV卡尺测量工具实现工业级圆与直线拟合的5个关键步骤,包括核心原理、环境配置、边缘点提取优化、鲁棒性几何拟合实现及QT集成技巧。通过模块化C++源码和实战案例,帮助开发者快速掌握高精度尺寸测量技术,适用于机械零件、PCB板等工业检测场景。

uran的专栏 843

OpenCV-Python实战(11)——OpenCV轮廓检测相关应用

在计算机视觉领域,轮廓通常指图像中对象边界的一系列点。因此,轮廓通常描述了对象边界的关键信息,包含了有关对象形状的主要信息,该信息可用于形状分析与对象检测和识别。在本文中,我们将学习如何利用获取到的轮廓,进行形状分析以及对象检测和识别。

盼小辉丶的博客 1万+

PHP规范之编程规范,PHP规范之编程规范

本规范但愿经过制定一系列规范化PHP代码的规则,以减小在浏览不一样做者的代码时,因代码风格的不一样而形成不便。php当多名程序员在多个项目中合做时,就须要一个共同的编码规范, 而本文中的风格规范源自于多个不一样项目代码风格的共同特性, 所以,本规范的价值在于咱们都遵循这个编码风格,而不是在于它自己。程序员本文档的预期读者PHP开发人员。闭包本文档适用于全部PHP开发人员。函数本文档适用于大型商用项...

weixin_28728279的博客 279

华为OD面试手撕真题 【合并相邻且相等的元素】多语言题解

华为OD面试高频手撕真题【合并相邻且相等的元素】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。

qq_45776114的博客 548

如何检查php代码规范,PHP代码如何规范

PHP代码如何规范对于PHP入门学习的童鞋来说,基础是很重的,一定要打好基础。那么大家知道PHP代码如何规范呢?下面一起来看看!了解PHP开发规范可以少走很多弯路,网上各种PHP开发规范也很多,我结合自身使用PHP的情况,来说说我所理解的PHP开发规范,涉及多个方面,比如PHP代码规范、PHP文件命名规范、网站开发流程、网站安全与维护等。作为PHP开发规范的开篇,我从一个纯PHP开发者的角度来说说...

weixin_42469000的博客 233

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PHP编程规范

<br /><br />一直以来我都是以php函数的风格来写php,所有变量,函数,类都使用小写,单词之间以下划线隔开,一直比较排斥驼峰式的代码规范,个人觉得在大小写字母之间的书写代码,很麻烦,而且PHP自己的函数都是小写,为什么我不用这种格式呢?<br />良好的代码书写习惯 + 良好的注释习惯 + PhpDocumentor = 程序说明书<br />一个团队,必须有整齐的代码书写习惯,如果再配上统一的IDE开发环境,详细的任务编码流程,完善的代码测试(如:SimpleTest),那么整个团队的开发效率

5283

PHP规范之编程规范,PHP 规范之编程规范

概述本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范, 而本文中的风格规范源自于多个不同项目代码风格的共同特性, 因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。本文档的预期读者PHP开发人员。本文档适用于大型商用项目。文档截图: 文件夹文件夹名称必须符合CamelCa...

weixin_32585497的博客 176

PHP 编写规范

基础规范 这是由 PHP-FIG(PHP Framework Interoperability Group)制定的 PHP 编码规范(PSR:Proposing a Standards Recommendation) 文档列表:PHP Standards Recommendations 重点阅读:PSR-1: Basic Coding Standard、PSR-12: Extended Coding Style 团队规范 代码注释 行注释: // 空格后写注释内容 块注释: /**

qq_35641923的博客 373

php 代码规范,PHP代码规范

我们写代码的时候,一个好的编码规范,对我们来说能够起到很多意向不到的效果:1、提高我们的编码效率。2、提高代码的可读性。3、显示我们专业。别人看到了我们的代码,发现整个代码的书写流程都整齐划一,瞬间逼格就上去了!划重点!!!4、方便团队协同工作。大家使用同一的规范,这样就消除了五花八分的书写方式,同一协调!编码规范包含两大块,代码的书写规范和注释的书写规范。1.代码的书写规范文件夹的命名:文件夹同...

weixin_39633500的博客 412

php psr 编码规范_PHP编码风格规范

由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范,即使是使用灵活的脚本语言,也能写出非常漂亮工整的代码。首先我们来看一下已经通过的PSR规范,然后大致讲解一下PSR-1和PSR-2规范的一些具体要求。已通过的PSRPSR-1基础编码规范开闭标签首先,...

weixin_33110093的博客 132

PHP编码规范

以PHP开发为例,编码规范就是融合了开发人员长时间积累下来的经验,形成了一种良好统一的编程风格,这种良好统一的编程风格会在团队开发或二次开发时起到事半功倍的效果。编码规范是一种总结性的说明和介绍,并不是强制性的规则。从项目长远的发展以及团队效率来考虑,遵守编码规范是十分必要的。遵守编码规范的好处如下:编码规范是团队开发成员的基本要求。开发人员可以了解任何代码,理清程序的状况。提高程序的可读性,有利于相关设计人员交流,提高软件质量。

qq_40445693的博客 990

PHP注释语法规范和命名规范]

PHP注释规范注释在写代码的过程中非常重要,好的注释能让你的代码读起来更轻松,在写代码的时候一定要注意注释的规范。php里面常见的几种注释方式:1.文件的注释,介绍文件名,功能以及作者版本号等信息/** * 文件名简单介绍 * * 文件功能 * @author 作者 * @version 版本号 * @date 2020-02-02 */2.类的注释,类名及介绍/** * 类

whucaodi的专栏 4147

php编码规范

开发团队的个人能力良莠不齐,代码风格也各有风格.为了提高项目整体编码质量,降低代码的维护难度,制定此编码规范。 编码规范 1. 标签 2. 编码 3. 注释 3.1 单行注释 3.2 多行注释 3.3 文件注释 3.4 类注释 3.5 方法注释 ...

ian有话说 265

PHP开发代码规范

1 编写目的 为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。开发团队根据自己的实际情况,可以对本规范进行补充或裁减。 2 整体要求 技术部php开发规范将参照PEAR的规范,基本采用PEAR指定的规范,在其基础上增加、修改或删除部分适合具体开发环境的规范。本规范只针对PHP开发过程中编码的规范,对于PHP开发项目中

倾听雨落 3130
上一篇: PHP调试器的使用
下一篇: PHP xdebug 调试工具安装与使用
df007df
博客等级 码龄18年 833粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

df007df

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值