PHPStorm中使用phpcs和php-cs-fixer进行代码格式化PSR-2

前言:良好的代码规范可以提高代码可读性,减少团队沟通维护成本,所以本文尝试PSR-2代码规范进行代码格式化。

正文:

(1)使用环境:

                    IDE:phpstorm2017.3.6

                    插件:phpcs和php-cs-fixer

(2)安装phpcs

composer global require 'squizlabs/php_codesniffer=*'

(3)安装php-cs-fixer

composer require friendsofphp/php-cs-fixer

注意:如果按照网上旧的教程,上面的命令会变成

composer global require fabpot/php-cs-fixer

fabpot/php-cs-fixer 这个包在Packagist上已经被Abandon了,可以使用,但是在使用过程中会报Warning,并且提示让你使用friendsofphp/php-cs-fixer,所以看到这篇文章的同志们可以直接安装friendsofphp/php-cs-fixer

如果已经安装了fabpot/php-cs-fixer,有强迫症想改成friendsofphp/php-cs-fixer,可以使用如下命令去掉composer依赖

composer remove fabpot/php-cs-fixer

(4)设置PHPStorm--phpcs

PhpStorm设置

● 步骤1:打开PhpStorm点击 File->Settings

● 步骤2:接着点击Languages & Frameworks->PHP->Code Sniffer点击Configuration右侧的按钮,

● 步骤3:选择PHP Code Sniffer (phpcs) path:的路径,就是刚才composer之后生成的那个phpcs.bat的路径。

● 步骤4:选择之后点击Validate验证成功

● 步骤5:节点点击Editor->Inspections展开点击右侧的PHP

● 步骤6:勾选PHP Code Sniffer Validation 选择右侧的PSR2

● 步骤7:点击验证成功 大功告成!!

效果:

(5)设置PHPStorm--php-cs-fixer

name和description可自行填写

program需要填写php-cs-fixer的可执行文件地址,Windows上是用户目录\Roaming\Composer\composer\vendor\bin\php-cs-fixer.bat,linux和mac上是~/.composer/vendor/bin/php-cs-fixer

Arguments/parameters填--rules=@Symfony --verbose fix "$FileDir$/$FileName$",其中rules字段具体可以查看 php-cs-fixer 的官方文档,但是由于 Windows 的 cmd 有诸多限制,所以只能传入一些简单的规则,如果需要配置复杂规则建议使用配置文件来完成。

working directory填$ProjectFileDir$

插件配置好以后,到Keymap中设置一个快捷键,就可以使用了

使用效果如下图

由于我开启了Xdebug,这边会有Warning,意思是会影响效率,可以忽略,至此,PHPStorm中成功使用phpcs和php-cs-fixer进行代码格式化PSR-2

本文参考了:

1.PHPStorm中使用php-cs-fixer进行自动代码格式化

2.PhpStorm PSR-2使用指南

3.PhpStorm集成PSR2代码自动检查

4.Package fabpot/php-cs-fixer is abandoned message in Magento 2

5.ATOM基础教程一php-cs-fixer配置(13)

推荐阅读更多精彩内容

  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 3,293评论 1 65
  • Awesome PHP 一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、W...
    琯琯阅读 4,948评论 0 46
  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 2,124评论 0 9
  • PSR-2 具体内容查看http://www.php-fig.org/psr/psr-2/ phpcs PHP C...
    zshanjun阅读 3,888评论 0 3
  • 用余生来告诉你 我有多喜欢你。
    娃娃vava阅读 137评论 0 1