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

请到如下提示的 45 行,根据 问题原因 做相应的代码调整。

下面是推送成功提示:

钩子代码:

 1 #!/bin/bash
 2
 3 ############################################
 4 # 1.编辑代码库所在的[ 代码库/.hg/hgrc ]文件
 5 # 2.添加如下节点
 6 # [hooks]
 7 # pretxnchangegroup = /home/hg/php_codesniffer/scripts/hg_pretxnchangegroup_hook.sh
 8 #
 9 # 3.赋予该脚本可执行权限 chmod a+x
10 # 以上
11 ############################################
12
13 echo -e "\n==========================Starting PHP Syntax Check==========================\n"
14
15 #在/tmp目录下创建临时目录
16 TEMP_DIR=`mktemp -dt php_syntax_files.XXXXXX`
17
18 #临时测试
19 #TEMP_DIR="/tmp/test/"
20 #HG_NODE="d0a1ccf22a26dfe62ae1db932dcc4972509b8f0b"
21
22 HG_BIN="/usr/bin/hg"
23 CHECK_CMD="/usr/bin/php /home/hg/php_codesniffer/scripts/phpcs --standard=PHPdragon --tab-width=4 --extensions=php $TEMP_DIR"
24 FORCE_CHECK_CMD="/usr/bin/php /home/hg/php_codesniffer/scripts/phpcs --standard=PHPdragonForce --tab-width=4 --extensions=php $TEMP_DIR"
25
26 #输出临时目录
27 echo "temp dir : "$TEMP_DIR
28
29 #导出当前至最新
30 #hg archive -r $HG_NODE:tip -t files /tmp/test
31 #导出当前
32 #hg archive -r $HG_NODE -t files /tmp/test
33 #全量导出
34 #hg archive -r tip -t files /tmp/test
35 #导出修改部分的代码
36 echo $HG_BIN" archive -I \"set:added() or modified()\" -r "$HG_NODE":tip -t files "$TEMP_DIR
37 $HG_BIN archive -I "set:added() or modified()" -r $HG_NODE:tip -t files $TEMP_DIR
38
39 #检测代码,输出提示
40 echo "$CHECK_CMD"
41 $CHECK_CMD
42
43 echo -e "\n\n\n\n=========================Force Check PHP Code Syntax=========================\n"
44
45 #强制检测代码
46 echo "$FORCE_CHECK_CMD"
47 TEST_SYNTAX=`$FORCE_CHECK_CMD`
48 echo -e "$TEST_SYNTAX"
49
50 #删除目录
51 echo "rm -rf "$TEMP_DIR
52 rm -rf "$TEMP_DIR"
53
54 if [ "0" == "${TEST_SYNTAX}" ] || [ "" == "${TEST_SYNTAX}" ];then
55     echo -e "\n\nThrough code detection, allowed to push! Push successfully!"
56     echo -e "\n===============================================================================\n\n"
57     exit 0
58 fi
59
60 echo -e "\n\nServer detected the code has a problem, please check to submit the push again!"
61 echo -e "\n===============================================================================\n\n"
62 exit 1
时间: 2024-10-06 21:24:30

PHP_CodeSniffer HG 服务端部署篇的相关文章

Maven服务端部署

Maven服务端部署 更改/bin/jsw/conf/wrapper.conf,设置wrapper.java.commond=D:\Program Files\Java\jdk1.8.0_40\bin\java.exe 否则,服务安装后无法启动 ? 安装 在CMD下找到nexus.bat,执行nexus.bat start即可. Http://localhost:8081/nexus,若能打开,说明服务安装成功 如果要更改端口号,可以conf/nexus.properties中更改 ? 默认有两

nuxt.js 服务端部署

这次 nuxt.js 服务端部署以docker为基础部署,这样解决以下这些问题: 1.  服务器里一般不搭建运行环境,可以直接以docker里的为环境,统一部署,而不用再次搭建运行环境 2. 常常出现本地没问题,到了服务端上部署时一堆错误,本地和服务器统一用docker里的环境打包部署,解决npm install,npm build等部署出现的错误,方便快捷 一.开始部署 准备如下项目 nuxt为需要部署的nuxt.js项目,名称随意,但需要和yml文件里的对应 nuxt-compose.yml

Agile.Net 组件式开发平台 - 服务端部署

应用服务器: 操作系统最低要求Windows Server 2008,服务器硬件如果支持64位建议安装64位操作系统产品以最大化发挥服务器性能. 首先安装操作系统Windows Server 2008,其次对操作系统做必要安全设置,详情请咨询产品经销商.然后将平台服务端安装至D盘AgileServer文件夹内,服务端配置更改请修改” System.Config”配置文件,双击AgileServer.exe安装 ” Agile.Net 分布式服务端 - 系统核心支撑服务” ,启动” Agile S

Rsync服务端部署流程

一.rsync服务端配置流程 1. 配置rsync配置文件/etc/rsyncd.conf 2.  创建同步的本地目录/dingjian 并根据需要授权 目录和/etc/rsync.password为配置文件中path = /dingjian/参数的配置 3.  账号密码文件配置: echo "rsync_backup:dingjian">/etc/rsync.password chmod 600 /etc/rsync.password 提示: 1)/etc/rsync.pass

FTP服务端部署

FTP服务端搭建(本地用户登入:使用本地用户和密码登入)1.文件配置:vsftpd.conf: 主配置文件ftpusers: 指定哪些用户不能访问FTP服务器user_list: 指定的用户是否可以访问ftp服务器2.编辑主配置文件(1)禁用匿名用户登录:anonymous_enable=NO(2)使user_list文件下的用户生效userlist_enable=YESuserlist_deny=NO(3)限制用户不能上传write_enable=NO(4)重新启动 FTP 服务service

python自动化运维——OMserver平台Web服务端部署过程

1.下载源代码(简单不讲述) 2.安装pcre,pcre是一个轻量级的正则表达式函数库,nginx的HTTP Rewrite模块会用到. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz tar -zxvf pcre-8.34.tar.gz cd pcre-8.34 ./configure make && make install 3.安装nginx. wget http://nginx.

服务端部署

拷贝到单独目录中,新增bat文件,执行 @echo off java -Xms256m -Xmx2048m -jar F:\app\web\maintain\maintain-0.0.1-SNAPSHOT.jar pause 原文地址:https://www.cnblogs.com/CoreXin/p/12266944.html

CentOS6部署VNC服务端

VNC (Virtual Network Computer)是虚拟网络计算机的缩写.VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美. 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,vncconnect. 下面以CentOS6.2为例,安装VNC步骤如下:     一.安装gnome桌面环境 如果系统已经安装了gnome桌

TYPESDK 服务端设计思路与架构之六:性能及调优初步

经过本系列前几篇文字的分析和设计,我们成功地开发出了自己的SDK服务端.在我们自己的调试环境下运行一切正常,但是当然我们不能就这样把这套SDK服务端部署上线到正式生产环境,稍有正式大型项目经验的同学应该都知道性能优化以及部署上线相关设计对于服务端项目的重要性.我们到目前为止的分析设计中,并没有考虑到这些设计.那么,针对我们SDK服务端这样的应用场景,应该着重关注哪些相关的优化和设计呢? 数据存取优化 在我们的应用场景中,需要使用到存储的场景主要在以下几个处理中: l  获取配置信息 对每个收到的