PHP_CodeSniffer HG 服务端部署篇
环境:CentOs 6.7
语言:PHP5.4
PHP_CodeSniffer: https://github.com/phpdragon/PHP_CodeSniffer
本地代码检测请查看该文章:http://www.cnblogs.com/phpdragon/p/5199011.html
1.从github下载代码,解压到 /home/hg/php_codesniffer/ 目录下。
拷贝 CodeSniffer.conf.dist 文件为 CodeSniffer.conf,调整内容如下:、
<?php
$phpCodeSnifferConfig = array (
'php_path' => '/usr/bin/php',
'default_standard' => 'PHPdragon',
'report_format' => 'summary',
'show_warnings' => '0',
'show_progress' => '1',
'report_width' => '120',
)
?>
2.编辑代码库所在的[ 代码库/.hg/hgrc ]文件。
3.添加如下节点。
[hooks]
pretxnchangegroup = /home/hg/php_codesniffer/scripts/hg_pretxnchangegroup_hook.sh
4.赋予该脚本可执行权限 chmod a+x 。
# chmod a+x /home/hg/php_codesniffer/scripts/hg_pretxnchangegroup_hook.sh
5.配置完毕,提交代码测试:

=========================================================以下是钩子的说明内容============================================================
1. 审核标准有两个:
一个是全量检测,但允许提交代码,
一个是强制规范,是这个判断来决定是否允许推送。
如果发现代码无法提交,请点击查看log, log中会提示为何无法提交代码。

2.代码检测提示文本格式如下:
==========================Starting PHP Syntax Check==========================
//建议的规范,检测报错提示内容
=========================Force Check PHP Code Syntax=========================
//强制要求的规范,检测报错提示内容
===============================================================================
3.报错内容以 =========================Force Check PHP Code Syntax========================= 标记为开始,该标记以上的内容为建议规范检测的报错提示。
这是报错,要求检查代码:
FILE: /tmp/php_syntax_files.xxxxx/src/server/userxxxxxxage_update_service.php //表示不符合规范的文件路径,那么实际地址是 工程路径/src/server/userxxxxxxage_update_service.php
请到如下提示的 行,根据 问题原因 做相应的代码调整。

下面是推送成功提示:


钩子代码:
#!/bin/bash ############################################
# .编辑代码库所在的[ 代码库/.hg/hgrc ]文件
# .添加如下节点
# [hooks]
# pretxnchangegroup = /home/hg/php_codesniffer/scripts/hg_pretxnchangegroup_hook.sh
#
# .赋予该脚本可执行权限 chmod a+x
# 以上
############################################ echo -e "\n==========================Starting PHP Syntax Check==========================\n" #在/tmp目录下创建临时目录
TEMP_DIR=`mktemp -dt php_syntax_files.XXXXXX` #临时测试
#TEMP_DIR="/tmp/test/"
#HG_NODE="d0a1ccf22a26dfe62ae1db932dcc4972509b8f0b" HG_BIN="/usr/bin/hg"
CHECK_CMD="/usr/bin/php /home/hg/php_codesniffer/scripts/phpcs --standard=PHPdragon --tab-width=4 --extensions=php $TEMP_DIR"
FORCE_CHECK_CMD="/usr/bin/php /home/hg/php_codesniffer/scripts/phpcs --standard=PHPdragonForce --tab-width=4 --extensions=php $TEMP_DIR" #输出临时目录
echo "temp dir : "$TEMP_DIR #导出当前至最新
#hg archive -r $HG_NODE:tip -t files /tmp/test
#导出当前
#hg archive -r $HG_NODE -t files /tmp/test
#全量导出
#hg archive -r tip -t files /tmp/test
#导出修改部分的代码
echo $HG_BIN" archive -I \"set:added() or modified()\" -r "$HG_NODE":tip -t files "$TEMP_DIR
$HG_BIN archive -I "set:added() or modified()" -r $HG_NODE:tip -t files $TEMP_DIR #检测代码,输出提示
echo "$CHECK_CMD"
$CHECK_CMD echo -e "\n\n\n\n=========================Force Check PHP Code Syntax=========================\n" #强制检测代码
echo "$FORCE_CHECK_CMD"
TEST_SYNTAX=`$FORCE_CHECK_CMD`
echo -e "$TEST_SYNTAX" #删除目录
echo "rm -rf "$TEMP_DIR
rm -rf "$TEMP_DIR" if [ "" == "${TEST_SYNTAX}" ] || [ "" == "${TEST_SYNTAX}" ];then
echo -e "\n\nThrough code detection, allowed to push! Push successfully!"
echo -e "\n===============================================================================\n\n"
exit
fi echo -e "\n\nServer detected the code has a problem, please check to submit the push again!"
echo -e "\n===============================================================================\n\n"
exit
PHP_CodeSniffer HG 服务端部署篇的更多相关文章
- 内网穿透神器(ngrok)服务端部署【分享一台自己的ngrok服务器】【多平台】
Ngrok为何物 “ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.”这是百度百科上给Ng ...
- CAS单点登录之服务端部署
一.CAS服务端搭建 1.1 CAS支持Http登录配置 CAS默认是要https的链接才能登录的,不过学习的话是可以先去掉https限制,本博客介绍的是基于Cas4.2.7的,之前改过4.0的,详情 ...
- Rsync服务端部署流程
Rsync服务端部署流程 Rsync服务端部署流程: 一.rsync服务端配置流程 配置rsync配置文件/etc/rsyncd.conf 创建同步的本地目录/dingjian 并根据需要 ...
- Zabbix5.0服务端部署
Zabbix5.0服务端部署 基础环境配置 [root@localhost ~]# systemctl disable --now firewalld Removed symlink /etc/sys ...
- 使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)
本文记录了我使用Cobbler批量安装部署Linux和Windows系统的过程,文章主要分为三部分:Cobbler服务端的安装配置.Linux发行版CentOS和Ubuntu的自动安装部署.Windo ...
- (转)使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)
原文:http://www.cnblogs.com/pluse/p/8316914.html http://blog.51cto.com/dreamway/1166589---------Cobble ...
- nodejs 开发服务端 部署到 iis 服务器环境 -- iisnode 安装问题解决记录
开发环境 nodejs: v10.15.3 windows: 10 iis: 10 需求: 用Nodejs开发了服务端,要部署到IIS 需要在IIS服务器上安装iisnode,结果遇到问题:安装不上 ...
- 【Azure 应用服务】Azure Mobile App (NodeJS) 的服务端部署在App Service for Windows中出现404 Not Found -- The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
问题描述 使用NodeJS的后端应用,开发一个Mobile App的服务端,手机端通过REST API来访问获取后端数据.在本地编译好后,通过npm start启动项目,访问效果如下: 但是,当把项目 ...
- Onvif开发之服务端发现篇
服务端的开发相对来说比客户端稍微难一点,也就是给填充相关结构体的时候,需要一点一点的去查阅,验证各个结构中各个成员各自代表什么意思,以及对应的功能需要是那个接口实现,这是开发服务端最头疼的事情.(在开 ...
随机推荐
- Android笔记(五):广播接收者(Broadcast Receiver)
Android有四大组件,分别为:Activity(活动).Service(服务).Content Provider(内容提供器).Broadcast Receiver(广播接收者). 引入广播的目的 ...
- java内部类(三)
内部类之方法内部类 方法内部类就是内部类定义在外部类方法中,方法内部类只在该方法内部可见,即只在该方法内部使用. 注意:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符 ...
- json与xml数据输出类
class Response { /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @par ...
- 给你的 CentOS 7 安装中文支持
今天给大家分享个给 CentOS 7 安装中文支持的方法,所谓“中文支持”目前明月观测到的是指命令行提示支持中文提示显示,还有就是 Vim 启动后看到的也是有中文提是的界面包括 Vim 内各种提示也会 ...
- IntelliJ IDEA全局内容搜索和替换
在做项目时,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能.使用方法如下: 一.全局搜索 1.使用快捷键Ctrl+Shift+F打开搜索窗口,或者通过点击Edit–> ...
- nssm和AlwaysUp来包装exe文件为windows服务
最近遇到要把windows exe文件部署为service,因为原先开发为exe程序,现在有不想修改code改为service,但是部署必须是service服务, 所以我们需要一个包装器来包装exe为 ...
- STM32 F103 F407 F429 F767对比图
- python unknown error: DevToolsActivePort file doesn't exist 问题解决
解决方案: from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_option ...
- cocos2d-x 开发用到的工具
1.VertexHelper 可用于多边形顶点的计算,可视化定点编辑器,用它创建的顶点信息可以直接导出为Box2D可使用的代码 https://github.com/jfahrenkrug/Verte ...
- SoapUI Pro Project Solution Collection-change the JDBC Request behavior
change the jdbc request : 1.change the driver name,connection string,query string or assert. the obj ...