zoukankan      html  css  js  c++  java
  • 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 "
    ==========================Starting PHP Syntax Check==========================
    "
    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 "
    
    
    
    =========================Force Check PHP Code Syntax=========================
    "
    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 "
    
    Through code detection, allowed to push! Push successfully!"
    56     echo -e "
    ===============================================================================
    
    "
    57     exit 0
    58 fi
    59 
    60 echo -e "
    
    Server detected the code has a problem, please check to submit the push again!"
    61 echo -e "
    ===============================================================================
    
    "
    62 exit 1
  • 相关阅读:
    MSSQL中with(nolock)的用法
    google reader 使用快捷键
    HTML中em标签的用法
    js正则表达式
    C#中lock关键字的用法
    面试反思
    关于IE6.7.8.FF兼容的问题
    C#中DateTime.Now.Ticks的用法和说明
    JS中eval的用法
    这两天面试时不会的笔试题
  • 原文地址:https://www.cnblogs.com/phpdragon/p/5815526.html
Copyright © 2011-2022 走看看