SublimeLinter之PHP代码检测与自动修复
SublimeLinter支持许多的语言检测,支持 JavaScript、CSS、HTML、Java、PHP、Python、Ruby 等十多种开发语言,项目GitHub地址。
本文以检测PHP文件代码为示例,安装sublimeLinter-php和squizlabs/php_codesnifferComposer包。其他语言请参考对应的文档。
安装
安装 SublimeLinter
用Package Control安装SublimeLinter(⌘(Command) + ⇧(Shift) + P –> 输入 Install…打开Package Control -> 输入SublimeLinter后回车进入安装)。
安装 SublimeLinter-phpcs
用Package Control安装SublimeLinter-php(⌘(Command) + ⇧(Shift) + P –> 输入 Install…打开Package Control -> 输入sublime linter phpcs后选择SublimeLinter-php回车进入安装)。
项目GitHub地址。需要使用Composer全局安装
composer global require "squizlabs/php_codesniffer=*",后面会使用到这个phpcs命令。
修改之后重启Sublime,如果我们在php代码文件写了不规范的代码,将看到左侧会有红灯标识。
手动去一一修复这些代码格式是没有问题的,但是这是一个费事费力的工作,有没有功能能辅助我们完成呢?答案是:php cs fixer。
安装自动修复 php cs fixer
用Package Control安装PHP CS Fixer(⌘(Command) + ⇧(Shift) + P –> 输入 Install…打开Package Control -> 输入php cs fixer 后回车进入安装)。
项目GitHub地址。需要使用Composer全局安装
composer global require friendsofphp/php-cs-fixer
使用 php cs fixer
使用快捷键修复代码
按快捷键Command + Shift + p呼出控制命令台,输入php cs fixer,输入回车,惊奇的发现代码被完好的格式化为符合PSR-2标准的代码了。
嗯,这样视乎看上去很好,在写完代码后执行修复代码操作,但是我们能不能在保存文件的时候就执行上面的修复代码呢?
简单配置 php cs fixer
在当前操作的用户家目录下建立一个$HOME/.phpcsfixer文件,内容大概为:
<?php
$finder = PhpCsFixer\Finder::create()
->exclude('tests/')
->in(__DIR__)
;
return PhpCsFixer\Config::create()
->setRules([
'@PSR2' => true,
'align_multiline_comment' => true,
'no_trailing_whitespace' => true,
'no_short_echo_tag'=> true,
'array_syntax' => ['syntax' => 'short'],
'no_unused_imports' => true,
'ordered_imports' => ['sortAlgorithm' => 'length']
])
->setFinder($finder)
;
@PSR2代码满足PSR-2标准align_multiline_commentno_trailing_whitespace删除非空行尾部的尾部空白no_short_echo_tag将长格式<?php echo语法替换为简写<?=array_syntax所有array()的定义都转换成[]的方式no_unused_importsPHP类中没有使用的use类自动删除ordered_imports按照长度排序
保存时执行php cs fixer

路径是Sublime Text->Preferences->Package Settings->PHP CS Fixer->Setting User。
{
"config": "/Users/curder/.phpcsfixer",
"on_save": true
}
保存完上面的配置之后,再保存修改过的php文件的时候将自动执行 php cs fixer。 并且也会使用我们定义在~/.phpcsfixer文件中的配置。