php 设置代码格式化,php – 自动代码格式化git

问题有两个部分:自动格式化代码,并检测何时不符合您的编码标准.

自动格式化代码不是真正要直接放在您和您的回购之间的东西.在提交前提交钩子中修改文件或尝试修改文件可能会造成混乱.因此,您正在使用的vcs并不重要.

使用工具通过编辑器格式化代码,或作为开发工作流程的一部分(手动或半自动)运行的过程将是适当的.例如,vim具有自动缩进代码的=函数,如其他人所提到的那样,这是一种可能性.

检测代码标准的需求需要一个cli工具来告诉您什么时候文件不符合编码标准 – 明显的选择是PHP Code Sniffer(phpcs) – 尽管它可以简单地是用来手动美化代码的工具(如果你使用一个)并检查它不会更改文件内容.

如果现有的标准符合您的风格,您可能需要编写自己的标准才能与phpcs一起使用.

您可以使用pre-commit hook在提交之前触发对代码的检查 – 如果发现代码错误,则会收到关于它们的通知,并且提交中止.您可以使用git commit –no-verify绕过您的预提交钩子

例:

$more foo.php

function bar() {

}

$git add foo.php

$git commit -v

running php/lint.php ... OK

running php/phpcs.php ... FAIL

phpcs -n -s --extensions=php,ctp --encoding=UTF-8 --standard=Cake '/tmp/cakephp-git-hooks'

FILE: foo.php

---------------------------------------

FOUND 3 ERROR(S) AFFECTING 2 LINE(S)

---------------------------------------

2 | ERROR | Space indented: Tabs for indents, spaces for alignment (Cake.WhiteSpace.ForceTabIndent)

2 | ERROR | Line indented incorrectly; expected 0 spaces, found 4 (Cake.WhiteSpace.ScopeIndent.Incorrect)

3 | ERROR | Space indented: Tabs for indents, spaces for alignment (Cake.WhiteSpace.ForceTabIndent)

---------------------------------------

Time: 0 seconds, Memory: 3.75Mb

$

(提交中止,代码不符合代码标准)

$git commit -v --no-verify -m "dummy commit"

running misc/happy-commits ... OK

[2.1 2c432f1] dummy commit

1 files changed, 3 insertions(+), 0 deletions(-)

create mode 100644 foo.php

$

(提交成功 – 尽管代码标准没有得到满足)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值