博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP代码自动检测(git/svn集成PHP_CodeSniffer)
阅读量:6902 次
发布时间:2019-06-27

本文共 1383 字,大约阅读时间需要 4 分钟。

背景

在公司开发的时候,每次不管svn还是git提交代码的时候都会对代码进行简单的自动检测。检查不了代码逻辑,但是最起码能保证整体的编码格式保持一致。这个功能还是挺有用的,一直想了解下是怎么实现的,直到最近想起来才开始了解这个自动检测是怎么回事。

研究途径

  1. 一般公司的doc文档上会记录各种系统的某个功能的具体实现,而且很可能不止一个文档,在公司的doc文档上各种关键字搜索都找不到相关资料
  2. 找到对应部门的同事询问是如何实现的。同事给了答复是PHP_CodeSniffer并且告知了。并且明确告知:文档?不可能的。然后加了一句,网上什么都有
  3. 最后就自己在Baidu/Google了几篇文章,差不多就了解了

实践部分

PHP_CodeSniffer的安装

pear install PHP_CodeSniffer

我直接使用了pear方式安装,简单方便很多。使用pear安装的扩展库基本上默认在php的安装目录下,比如我的:/opt/php-7.1.9/lib/php/PHP/CodeSniffer。大家可以参考下自己的安装目录。

命令行直接使用PHP_CodeSniffer如下:

phpcs test.php

设置PHP_CodeSniffer的代码规范格式。

# /opt/php-7.1.9/lib/php/PHP/CodeSniffer/src/Standards # 这个目录下列出了所有可以设置的格式(PSR1,PSR2,PSR12,Zend,Squiz等)phpcs --config-set default_standard Zend

svn/git安装

这里不展开描述了,由于我在虚拟机上安装也花了一些时间,都是参考网上的资料。

将PHP_CodeSniffer集成到git/svn中

每部署一个svn项目,都会对应的配置文件,其中有个hooks文件夹,其中有pre-commit,在这个文件中加上phpcs 的命令就好了。
git的原理是一样的,都是有个hooks的文件夹,其中都有pre-commit。
差别:我们公司svn是在commit的过程中进行的自动检测,git是在git push的时候进行检测操作的。猜想应该自动代码检测肯定是集成在工程代码所在的服务端是最好的。svn commit的时候就直接访问的远程主机。但是git commit的时候是将代码保存在本地分支,只有git push的时候才是提交到远程主机,所以git就是在git push的时候进行的自动检测操作。

写在最后

通过了解PHP代码的自动检测,发现了很多问题。

  1. 自己没有主动去思考问题,最开始的时候就是想去doc上查找资料,而不是先想想这个功能是如何做到的。再到在doc上没找到资料直接去找了同事
  2. 一直在做业务需求的时候,常常忘记了继续学习,思考其他东西。比如linux命令很多都已经忘记了,还有就是PHP_CodeSniffer这个扩展库很不错,之后有时间再研究下具体实现。需要经常思考问题
  3. 通过这次的代码自动检测发现自己什么都不懂,pear,PSR,svn/git,yum/apt-get等等很多都不懂,即使之前用过,但是没有深入研究过,也没有做对应的记录,所以很快就忘记了。看的稍微多一点就会意识到自己了解的太少太少了
  4. 感谢这个过程中使用的几个资料

参考文档

转载地址:http://vrpdl.baihongyu.com/

你可能感兴趣的文章
android项目 之 记事本(12) ----- 图片的等比例缩放及给图片加入边框
查看>>
C#创建自己的扩展方法
查看>>
业务模型的价值(程序员的另外一条出路)
查看>>
TI 28335和AD采集
查看>>
各国语言简写代码 (转)
查看>>
JAVA CyclicBarrier类详解
查看>>
判断字符串解析是JsonObject或者JsonArray
查看>>
Django中的分页
查看>>
Windows XP/Windows 7/Windows 8/Windows 10系统封装的另类教程和思路
查看>>
根据URL获取参数值得出json结果集,对外给一个接口让别人调用
查看>>
aptana eclipse plugin install on sts
查看>>
网友对网秦公司的真实评价
查看>>
windows下基于apache的SVN启动失败修改
查看>>
[九度][何海涛] 乐透之猜数游戏
查看>>
nw.js作者Roger:找到正确方向比怎么做更重要
查看>>
阿里巴巴参与研发的量子计算机已超越早期经典计算机
查看>>
向技术的长征:一家中国互联网巨头从商业驱动转向技术驱动的努力
查看>>
淘宝奇葩店铺:一个人的皇冠店|视频
查看>>
15家大厂经验传授:程序员如何在面试中「投其所好」?
查看>>
详解微信异步队列 MQ 2.0 的功能优化及拓展思路
查看>>