PHP 代码质量检查那些事

本文介绍了PHP代码质量检查的四个层次,包括基础语法、代码规范、Bad Coding和更深层检查,推荐了如PHPLint、PHPcs、PHPmd等工具,并详细讲解了它们的安装与使用。此外,还提到了GrumPHP在git提交时的自动化检查,以及如何整合这些工具到PHPStorm中以提升代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

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

二、代码质量的检查层次

我把代码质量划分了四个检查层次:基础语法检查、代码规范检查、 Bad Coding 检查和更深层检查。

1. 基础语法检查

有基本语法错误(syntax errors)的代码,在编译阶段就会报致命的错误,所以是必须检查出来并由程序员手动进行改正,属于最基本的检查层次,而大部分 IDE 都支持错误语法检查,一般都会以红色波浪线划出错误的代码作为提示,我们很容易能够找到问题代码,如图:

可是有时候因为不小心手抖了一下,在一堆代码里面,多打了个字符或是用错了全角符号等,就不是那么容易找到了,下图你能轻松找到问题代码吗?

 

由于一般都会经过测试环境测试,也还有很小的几率能发到生产环境,不过测试环境的构建发布也是需要时间的,所以不能光依赖 IDE 的语法提示,还要利用一些命令行工具作为检查手段,如 php 自身也带有语法检查的命令:php -l

 

但是由于 php -l 的反馈不太友好(如下图),只有简单的语法错误描述:

 

推荐使用 PHPLint 的工具。

2. 代码规范检查

代码规范(或编码规范)包含基础编码规范和编码风格规范,一些团队还会自行制定命名规范。编译器对代码规范及风格是无感的,只要无语法错误,编译都可以通过。但是规范的代码和统一的风格有助于提高代码的可读性,提高编码效率和协作水平。

 

从正确性来看,以上两种风格都对,只是个人审美不一。如果团队真实存在这样的两种代码风格,就只能通过制定编码规范来统一约束。在 PHP 语言中有 PSR 标准,是由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准,其中 PSR1/PSR2 分别针对基础编码规范和编码风格规范给出了标准。既然官方都给出了标准,我们完全应该遵循,团队可以基于这样的规范标准再进一步制定自己的代码规范。那么只要不遵循这样规范的代码,就应该识别出来并修正。

代码规范有许多工具可用,功能包括规范检测和自动格式化,我们常用的 IDE 也一定具有自动格式化代码的功能,如 PHPStorm 也支持自动格式化代码:Reformat Code。

下面推荐几种工具:

  • phpcs (php code sniffer) :PHP 代码嗅探器,用于探测不符合规范的代码
  • phpcbf (php code beautiful fixer) :PHP 代码美化器,根据编码规范自动化格式化代码
  • php-cs-fixer (php code standard fixer):代码规范修复器

3. Bad coding 检查

经过前面的语法检查和编码规范修正,代码质量水平的下限已经提高了许多,但是仍然有可能因为不好的编程习惯和一些 Bad Coding 导致出现一些潜在的问题,当程序运行时才会遇到。我们希望是可以在代码未运行时就在静态代码中被发现。

“Bad Coding” 意思为没有语法问题,也遵循了代码规范,但写法不太好,有可能诱发潜在问题或者性能问题,我们应该识别出来优化掉的那部分代码。比如:

 

以上代码有两个问题:

第一是 $arr["psr1"] = "基础编码规范"; 不应该使用双引号,我们都知道 PHP 中的双引号字符串是带

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值