php-cs-fixer – PHP 编码格式化工具
php-cs-fixer 是个代码格式化工具,格式化的标准是 PSR-1、PSR-2 以及一些 symfony 的标准。这个工具也和 symfony、twig 等优秀的 PHP 库出自同门。
安装与更新
需要使用 PHP 5.3.6 以上的版本。
你可以直接下载封装好的 phar 包:php-cs-fixer.phar;
或者通过 wget 下载(下面的都是 OSX 和 Linux 上的用法):
wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixer
或者通过 curl 下载:
curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer
下载完成后给可执行的权限,然后移动到 bin 目录下面即可:
sudo chmod a+x php-cs-fixer sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer
这样就可以在任何地方直接使用 php-cs-fixer
命令来调用了。
也可以用过 Composer 来安装:
composer global require fabpot/php-cs-fixer
如果你是 Mac 用户、homebrew 用户并且已经 tap 过 homebrew/php 的话,也可以直接:
brew install php-cs-fixer
或者:
brew install homebrew/php/php-cs-fixer
如果后续需要更新的话:
php-cs-fixer self-update
如果是通过 homebrew 安装的:
brew upgrade php-cs-fixer
如果没有将执行文件放到 bin 目录下或者在 Windows需要使用 php php-cs-fixer.phar
代替 php-cs-fixer
。
用法
用法也很简单,最基本的命令参数就是 fix
,直接执行时会尽可能多的根据默认标准格式化代码:
# 格式化目录 如果是当前目录的话可以省略目录 php-cs-fixer fix /path/to/dir # 格式化文件 php-cs-fixer.phar fix /path/to/file
--verbose
选项用于展示应用了的规则,默认是文本(txt
)格式。
--level
选项用于控制需要使用的规则层级:
php-cs-fixer fix /path/to/project --level=psr0 php-cs-fixer fix /path/to/project --level=psr1 php-cs-fixer fix /path/to/project --level=psr2 php-cs-fixer fix /path/to/project --level=symfony
默认情况下执行的是 PSR-2 的所有选项以及一些附加选项(主要是 symfony 相关的)。还有一些属于『贡献级别』的选项,你可以通过 --fixers
选择性的添加,--fixers
的多个条件要用逗号分开:
php-cs-fixer fix /path/to/dir --fixers=linefeed,short_tag,indentation
如果有需要的话也可以使用 -name_of_fixer
采取黑名单的方式设定禁用哪些选项。如果同时设定了 --fixers
和 -name_of_fixer
,前者的优先级更高。
同时使用 --dry-run
和 --diff
命令可以显示出需要修改的汇总,但是并不实际修改。
通过以下方式也可以查看有哪些内容是会修改的,但是并不实际改动文件:
cat foo.php | php-cs-fixer fix --diff -
自定义配置
--config
选项可以用来设置选取目录以及文件进行分析并格式化,但是这个选项只能设置一些常见的已知的项目,比如 symfony:
# For the Symfony 2.3+ branch php-cs-fixer fix /path/to/sf23 --config=sf23
已有选项:
-
default 默认配置
-
magento magento 项目
-
sf23 symfony 的项目