资讯专栏INFORMATION COLUMN

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

CoderDock / 296人阅读

摘要:背景在公司开发的时候,每次不管还是提交代码的时候都会对代码进行简单的自动检测。并且明确告知文档不可能的。猜想应该自动代码检测肯定是集成在工程代码所在的服务端是最好的。写在最后通过了解代码的自动检测,发现了很多问题。

背景

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

研究途径

一般公司的doc文档上会记录各种系统的某个功能的具体实现,而且很可能不止一个文档,在公司的doc文档上各种关键字搜索都找不到相关资料

找到对应部门的同事询问是如何实现的。同事给了答复是PHP_CodeSniffer并且告知了github链接。并且明确告知:文档?不可能的。然后加了一句,网上什么都有

最后就自己在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代码的自动检测,发现了很多问题。

自己没有主动去思考问题,最开始的时候就是想去doc上查找资料,而不是先想想这个功能是如何做到的。再到在doc上没找到资料直接去找了同事

一直在做业务需求的时候,常常忘记了继续学习,思考其他东西。比如linux命令很多都已经忘记了,还有就是PHP_CodeSniffer这个扩展库很不错,之后有时间再研究下具体实现。需要经常思考问题

通过这次的代码自动检测发现自己什么都不懂,pear,PSR,svn/git,yum/apt-get等等很多都不懂,即使之前用过,但是没有深入研究过,也没有做对应的记录,所以很快就忘记了。看的稍微多一点就会意识到自己了解的太少太少了

感谢这个过程中使用的几个资料

参考文档
PHP_CodeSniffer安装

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28931.html

相关文章

  • PHP代码修正之CodeSniffer

    摘要:它包含两类脚本,和地址脚本对文件定义了一系列的代码规范通常使用官方的代码规范标准,比如的,能够检测出不符合代码规范的代码并发出警告或报错可设置报错等级。脚本能自动修正代码格式上不符合规范的部分。 Last-Modified: 2019年5月10日13:59:27 参考链接 PHP开发规范之使用phpcbf脚本自动修正代码格式 在PhpStorm中使用PSR2编码规范phpcbf脚本自...

    khs1994 评论0 收藏0
  • jenkins+sonarqube+php自动检测&发送邮件基本实现

    摘要:由于拉取有文件会自动拉取。那么需要在后台关闭这个选项中文插件保持账户拥有者和发送邮件一致 目的 对于小组内部PHP代码进行定期检测及分发 1. 需要定期从svn 或者git拉取指定代码 2. 对代码库内部门模块进行隔离或者删除,不参与检测 3. 为小组内人员定期发送邮件, 4. 可分配具体bug 给具体小组内人员 jenkins安装及安装插件 1. sonar搭建可以参考 [之前文章...

    AaronYuan 评论0 收藏0
  • PHP 系列:代码规范之 Code Sniffer

    摘要:脚本对文件定义了一系列的代码规范通常使用官方的代码规范标准,比如的,能够检测出不符合代码规范的代码并发出警告或报错可设置报错等级。比如规范中对每一个文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。 showImg(https://segmentfault.com/img/remote/1460000011338137); 有些同学可能还没听过这东西,大概介绍...

    0xE7A38A 评论0 收藏0
  • PHP 规范说明与工具

    摘要:今天这篇分享将简单地梳理一下规范,并介绍一个代码检查工具,结合以及进行实践。目前流行的一些规范是的简写,由组织制定的规范,是开发的实践标准。目前已表决通过了套标准,已经得到大部分框架的支持和认可。 > 作为一个新手,写出规范的代码也是一门必修课,除了阅读相应的代码规范文档之外,充分利用相关的工具能使得进阶之路事半功倍。今天这篇分享将简单地梳理一下 PHP 规范,并介绍一个代码检查工具 ...

    snowLu 评论0 收藏0
  • 使用PHPCS+GIT钩子保障团队开发中代码风格一致性实践

    摘要:集成经过上面的操作,代码格式化的规则基本与的规则基本一致了,但也有一小部分不一致,所以后面还要用到和。 一、背景 笔者在6月份加入新团队,新团队这边刚组建起来,基础一些东西还处于待完善状态,比如笔者组内同学约定使用PSR-2的编码风格规范,但是并不是所有人都严格按照PSR-2来提交代码。 最大的原因就是口头的约束力极为有限,而团队中大家使用的编辑器不统一,有使用phpstorm,也有使...

    wums 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<