用 php-cs-fixer 自动格式化,一个配置配合 Git 自动格式化,补充楼上。

示例 Git Hook

忽略前端的代码格式化,修改一下就可以用。

#!/bin/bash

#

# check PHP code syntax error and standard with phpcs

# https://blog.csdn.net/xsgnzb/article/details/52222366?locationNum=4&fps=1

# https://blog.csdn.net/ljihe/article/details/80826071

# =================== how to use ====================

# cp ./build/pre-commit.sh ./.git/hooks/pre-commit

# chmod 777 ./.git/hooks/pre-commit

# git commit -h

# git commit -n -m 'pass hook' #bypass pre-commit and commit-msg hooks

# ==================== end ==========================

PROJECT=$(git rev-parse --show-toplevel)

cd $PROJECT

SFILES=$(git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\.php$)

# Determine if a file list is passed

if [ "$#" -ne 0 ]

then

exit 0

fi

echo "Checking PHP Lint..."

for FILE in $SFILES

do

php -l -d display_errors=0 $FILE

if [ $? != 0 ]

then

echo "Fix the php error before commit."

exit 1

fi

FILES="$FILES $PROJECT/$FILE"

done

phpcsfixer_path=$(cd `dirname $0`; pwd)"/../../build/php-cs-fixer"

gulp_path=$(cd `dirname $0`; pwd)"/../../frontend/node_modules/.bin/gulp"

prettier_path=$(cd `dirname $0`; pwd)"/../../frontend/node_modules/.bin/prettier"

# format code style

if [ "$FILES" != "" ]

then

echo "Running Code Sniffer..."

isCheck=""

for FILE in $SFILES

do

IGNORE_PATH=(

'vendor'

)

for IGNORE_ITEM in ${IGNORE_PATH[@]}

do

if [[ ${FILE} =~ ${IGNORE_ITEM} ]]

then

echo "Ignore file of "${IGNORE_ITEM}

continue 2

fi

done

#result=`~/.composer/vendor/bin/php-cs-fixer fix $FILE --config=.php_cs.dist`

#result=`php-cs-fixer fix $FILE --config=.php_cs.dist`

result=`php $phpcsfixer_path fix $FILE --config=.php_cs.dist`

if [ "$result" != "" ]

then

echo $result

isCheck=$result

git add $FILE

fi

done

if [ "$isCheck" != "" ]

then

echo "The file has been automatically formatted."

fi

fi

# for js

jsfiles=$(git diff --cached --name-only --diff-filter=ACM "*.js" "*.jsx" "*.vue" "*.css" "*.less" | tr '\n' ' ')

[ -z "$jsfiles" ] && exit 0

# format iview

$gulp_path iview --gulpfile frontend/gulpfile.js

# Prettify all staged .js files

echo "$jsfiles" | xargs $prettier_path --config frontend/.prettierrc.js --ignore-path frontend/.prettierignore --write

# Add back the modified/prettified files to staging

echo "$jsfiles" | xargs git add

git update-index -g

exit $?

php强制对齐,[强迫症福利] 使用 PHPStorm 对齐数组的键值对相关推荐

  1. phpstorm遍历PHP数组,使用PHPStorm对齐数组的键值对

    在 PHPStorm 中定义数组时往往会写成下面这样:public function index() { return [ 'foo' => 'bar', 'foo-bar' => 'fo ...

  2. 什么是字节对齐,为什么需要字节对齐

    概念 在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int.long.float等)的变量,也可以是一些复合数据类型(如数组.结构.联合等)的数据单元.在结构中,编译器为结构的 ...

  3. c语言特殊字符字符串宽度对齐,[转]C语言字节对齐问题详解

    引言 考虑下面的结构体定义: 1 typedef struct{2 charc1;3 shorts;4 charc2;5 inti;6 }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1 ...

  4. mysql字节对齐_结构体字节对齐-位域及其对齐

    字节对齐的准则:其实字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则: 1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除: 2) 结构体每个成员相对于结构体首地址的偏移量都是成 ...

  5. mysql字节对齐_结构体字节对齐(转)

    结构体字节对齐 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题.从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是 ...

  6. python中右对齐_python中如何右对齐-问答-阿里云开发者社区-阿里云

    例如,有一个字典如下: dic = { "name": "botoo", "url": "http://www.123.com&q ...

  7. html 设置图片左对齐,CSS设置图片的对齐

    CSS设置图片的对齐 横向对齐方式 图片的水平对齐方式和文字的水平对齐方式基本相同,分别是左.中.右三种方式,不同的是,图片的水平对齐通常不能直接通过设置图片的text-align属性设置,而是,通过 ...

  8. php excel 右对齐,excel中单元格对齐方式在哪里设置?

    excel单元格对齐方式可以在"设置单元格格式"框的"文本对齐方式"中设置.设置方法:1.选中要设置的单元格或单元格区域:2.鼠标点击右键,点击"设置 ...

  9. 怎么让c语言程序右边对齐,c语言中的对齐方式

    对齐有自然对齐(Natural)和指点对齐(Assign). 自然对齐指数据类型本身的对齐方式,例如 int为4,float为4,double为8. 指定对齐为编译器默认的对齐方式(VC默认为8)或用 ...

最新文章

  1. python能够处理的最大整数是多少_python中能输出的最大整数位是多少
  2. FTP错误 [ftp: connect: No route to host] 解决方法
  3. Oozie基于Hue全流程调度
  4. Python 计算机视觉(三)—— 数字图像处理基本操作
  5. LeetCode Algorithm 206. 反转链表
  6. 大数据互联网架构阶段 大型电商项目数据库设计时应该注意的点
  7. CI框架源码阅读笔记4 引导文件CodeIgniter.php
  8. MySQL(一)MySQL基础介绍
  9. 好文章系列(都是网上非常好的文章)
  10. Python已经超过了JAVA?
  11. 校园网客户端没有linux版,Linux版校园网客户端公测中(已添加GUI输入窗口)njit-clent...
  12. 路由器登录校园网解决终端限制问题
  13. 英文secuerity证券secuerity安全
  14. 可牛影像动感渐隐闪图教程
  15. 计算机组成dr是什么意思,体检中DR诊断是什么意思
  16. win10命令提示符怎么打开_技巧,win10蓝屏SYSTEM_PTE_MISUSE怎么解决
  17. Android禁用系统更新
  18. iOS如何让APP删除后不接受APNS推送消息
  19. 《算法图解》读书笔记
  20. 【oracle】 字段属性为 date 的相关操作

热门文章

  1. LINQ:进阶 - LINQ 标准查询操作概述
  2. python3怎样交换数字顺序_python中怎么交换列的顺序
  3. ffmpeg源码分析及mp4文件解析
  4. Android之用Handler实现主线程和子线程互相通信以及子线程和子线程之间的通信
  5. Android之JNI ERROR (app bug): accessed stale global reference 0xb39533f2 (index 19708 in a table of s
  6. Android studio之NDK integration is deprecated in the current plugin解决办法
  7. JavaJVM之ClassLoader源码分析
  8. 判断一棵树是否为平衡二叉树
  9. solidity struct 结构体创建与使用浅学 (四)
  10. 计算机辅助翻译的启示,翻译单位研究对计算机辅助翻译启示.PDF