当前位置: 首页 > 后端技术 > PHP

PHP代码自动检测(git-svn集成PHP_CodeSniffer)

时间:2023-03-30 06:15:24 PHP

背景公司在开发的时候,无论svn还是git,每次提交代码都会对代码进行简单的自动检测。代码逻辑无法检查,但至少可以保证整体编码格式一致。这个功能非常有用。我一直想知道它是如何实现的。直到最近想起来,我才开始明白这个自动检测是怎么回事。研究途径公司的doc文档一般会记录各个系统某个功能的具体实现,而且可能不止一个文档。公司doc文档各种关键词搜索都没有找到相关信息。找对应部门的同事问一下是怎么做到的。同事给出了答案PHP_CodeSniffer,并告知了github链接。并明确告知:文档?不可能的。然后加了一句,网上什么都有。最后在百度/谷歌上写了几篇文章,把PHP_CodeSniffer的安装在实战部分也差不多明白了。用pear安装的扩展库基本上默认都在php的安装目录下,比如我的:/opt/php-7.1.9/lib/php/PHP/CodeSniffer。可以参考自己的安装目录。直接在命令行使用PHP_CodeSniffer如下:phpcstest.php设置PHP_CodeSniffer的代码规范格式。#/opt/php-7.1.9/lib/php/PHP/CodeSniffer/src/Standards#这个目录列出了所有可以设置的格式(PSR1、PSR2、PSR12、Zend、Squiz等)phpcs--config-setdefault_standardZendsvn/git的安装这里就不多说了,因为我在虚拟机上安装花了一些时间,参考了网上的资料。将PHP_CodeSniffer集成到git/svn中,每部署一个svn项目都会有一个对应的配置文件。有一个hooks文件夹,其中包含预提交。只需将phpcs命令添加到此文件即可。git的原理也是一样的,有一个hooks的文件夹,里面有pre-commit。区别:我们公司的svn在commit过程中自动检测,而git在gitpush时进行检测操作。猜测必须在工程代码所在的服务器端集成自动代码检测是最好的。svn提交时直接访问的远程主机。但是gitcommit的时候,代码是保存在本地分支的,只有gitpush的时候才会提交到远程主机,所以git是gitpush的时候自动检测操作。写在最后通过了解PHP代码的自动检测,发现了很多问题。没有主动去想问题。一开始是想去doc上找资料,而不是去想这个功能是怎么实现的。当我没有找到doc上的资料,直接去找一直在做业务需求的同事时,往往会忘记继续学习,去想其他的事情。比如很多linux命令都忘记了,PHP_CodeSniffer这个扩展库很好,以后有时间再研究具体实现。需要经常思考问题通过这次代码自动检测,发现自己什么都不懂,pear,PSR,svn/git,yum/apt-get等等,很多东西不懂,即使我有以前用过,但没深入研究过。没有对应的记录,所以很快就忘记了。多看一点,就会发现自己知道的太少太少了。由于在这个过程中使用了几种材料。参考文档PHP_CodeSniffer安装

最新推荐
猜你喜欢