使用PHPCompatibility进行PHP跨版本兼容性检查

2022-12-15 13:53:46 浏览数 (1)

有时候我们接手一个他人的项目,或者我们可能在运营一个老旧的项目,但是新的环境PHP版本却和开发环境的不同,那么我们可能就需要检查项目中是否有出现可能的不兼容的问题,因为更新的PHP版本可能会在之前的基础上移除一些特性。

比如PHP7.x相较于PHP5.x来说,PHP7移除了不少PHP5中的特性,这就导致我们在PHP5环境下开发的程序有可能在PHP7下无法正常运行。

靠手动排查这样的问题的确很是麻烦,首先需要知道新的PHP到底移除和改变了哪些特性以及新的规范(这个嘛,是必须的啦,不断学习才能更加壮大),然后得挨个的进行全局搜索,费时又费力,如果程序时候PHP HTML混编,那将更加头疼。

这时候我想起一句话:“人类进化历程中与其他生物最大的不同便是学会了如何使用工具”,没错我们做很多事情都是可以借助工具来完成了,PHP跨版本的兼容性检查也是一样,有人早就为我们想好了,而且已经制造出了这么一个工具:PHPCompatibility

接下来我们就来看看如何使用她吧。

注:PHPCompatibility是PHPCodesniffer的一个插件,所以要使用PHPCompatibility,必须先安装PHPCodesniffer

1.安装PHPCodesniffer

PHP_CodeSniffer是PEAR中的一个用来检查嗅探PHP代码是否有违反一组预先设置好的编码标准的一个包,它是确保你的代码简洁一致的一个重要的开发工具,甚至还可以帮助程序员减少一些语义错误;它包含两类脚本,分别为phpcs和phpcbf(Github地址

根据PHPCompatibility的介绍,PHP5.4 ,我们选择安装PHPCodesniffer3.x,推荐使用composer或pear安装,至于如何使用composer,我之前有写过一篇文章,如有需要可以前往查看,传送门:Composer的使用。pear的使用就请各位自行搜索使用方法了~_~,接下来我们的介绍使用composer的方法进行安装:

代码语言:javascript复制
composer global require "squizlabs/php_codesniffer=*"

安装完成后,会在全局的Verndor目录下的bin中生成两个软链接:phpcs和phpcbf

如果您不知道全局vendor目录在哪儿,可以使用如下命令查看

代码语言:javascript复制
composer global config bin-dir --absolute

PHPCodesniffer安装完成后,我们可以检查一下是否安装是否正常

代码语言:javascript复制
phpcs --version

注:如果您是Windows用户,您需要将PHPCodesniffer的安装路径(需要深入到PHPCodesniffer的bin目录)添加到系统环境变量PATH中去(和添加php的环境变量方法相同)

如果屏幕中显示了版本信息,那么说明安装成功了,这时我们已经可以使用PHPCodesniffer来检查我们的代码规范了

代码语言:javascript复制
phpcs /path/to/code

但这不是我们的目的,我们的目的是使用PHPCompatibility,所以我们继续安装PHPCompatibility(Github地址)

因为PHPCompatbility仅仅作为PHPCodesniffer的插件使用,我们这推荐使用zip的方式进行安装,直接前往release版本中心下载最新的版本,然后解压到任意目录(路径中不建议包含中文)即可。然后执行命令让PHPCodesniffer知道您的PHPCompatibility的安装路径

代码语言:javascript复制
phpcs --config-set installed_paths /path/to/PHPCompatibility

执行上述命令后我们可以看到successfull的提示,但为了准确的知道安装是否正确,我们可以使用命令来检查

代码语言:javascript复制
phpcs -i

如果打印出了PHPCompatibility说明配置成功,到此我们就已经配置完成,可以开始使用PHPCompatibility来检查我们PHP程序了,基本使用方法,更详细的方法可前往Github查看官方文档:

代码语言:javascript复制
# 检查当前目录的所有文件
phpcs -p . --standard=PHPCompatibility
# 检查指定文件
phpcs -p /path/to/code --standard=PHPCompatibility

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:

原文出处:Yiiven https://cloud.tencent.com/developer/article/2193132

0 人点赞