git提交代码前用php-cs-fixer强制格式化代码

    xiaoxiao2026-06-13  12

    需求:为统一团队代码风格,在大家提交代码时同意格式化代码,方便阅读。

    思路:

    1、php-cs-fixer格式化代码

    2、git hooks来选定在什么时候进行格式化

    工具:

    1、git

    2、php-cs-fixer

    安装php-cs-fixer,packagit地址

    A、先在项目根目录下写个脚本,调用脚本,则自动格式化当前修改了的php文件的代码, php-cs.sh 如下:

    #!/bin/bash modify_files=`git status | grep 'lib.*.php' | awk -F ':' '{print $2}' | uniq` for file in ${modify_files} do result=`~/.composer/vendor/bin/php-cs-fixer fix ${file} | grep 'lib.*.php' ` echo $result done 通过git status查看有哪些文件做了修改,匹配出需要的文件,丢给php-cs-fixer进行格式化

    格式化成功,则会输出:1) /var/www/demo.php 文件名,

    如果没有需要格式化的代码,则会输出空

    B、写git的hooks脚本

    位置在项目根目录的.git/hooks/文件夹下面,我们选用pre-commit事件, vi pre-commit。

    在commit之前进行判断,有php文件进行了格式化,则不commit,给出错误提示;没有php文件夹进行了格式化,则commit;

    hooks脚本如下:

    #!/bin/sh commit=`sh /var/www/credit/php-cs.sh` #这个路径需要根据本机进行配置,使用相对路径好像不行 if [ -n "$commit" ] then echo >&2 "代码进行了格式化,请重新提交一次" exit 1 fi exit 0 这样,在每次提交代码的时候,就能对php文件里的代码进行格式化,也可以参照php-cs-fixer文档做更多定制化配置

    转载请注明原文地址: https://ju.6miu.com/read-1310489.html
    最新回复(0)