php-cs-fixer – PHP 編碼格式化工具
php-cs-fixer 是個代碼格式化工具,格式化的標準是 PSR-1、PSR-2 以及一些 symfony 的標準。這個工具也和 symfony、twig 等優(yōu)秀的 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
下載完成后給可執(zhí)行的權(quán)限,然后移動到 bin 目錄下面即可:
sudo chmod a+x php-cs-fixer sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer
這樣就可以在任何地方直接使用 php-cs-fixer
命令來調(diào)用了。
也可以用過 Composer 來安裝:
composer global require fabpot/php-cs-fixer
如果你是 Mac 用戶、homebrew 用戶并且已經(jīng) tap 過 homebrew/php 的話,也可以直接:
brew install php-cs-fixer
或者:
brew install homebrew/php/php-cs-fixer
如果后續(xù)需要更新的話:
php-cs-fixer self-update
如果是通過 homebrew 安裝的:
brew upgrade php-cs-fixer
如果沒有將執(zhí)行文件放到 bin 目錄下或者在 Windows需要使用 php php-cs-fixer.phar
代替 php-cs-fixer
。
用法
用法也很簡單,最基本的命令參數(shù)就是 fix
,直接執(zhí)行時會盡可能多的根據(jù)默認標準格式化代碼:
# 格式化目錄 如果是當前目錄的話可以省略目錄 php-cs-fixer fix /path/to/dir # 格式化文件 php-cs-fixer.phar fix /path/to/file
--verbose
選項用于展示應用了的規(guī)則,默認是文本(txt
)格式。
--level
選項用于控制需要使用的規(guī)則層級:
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
默認情況下執(zhí)行的是 PSR-2 的所有選項以及一些附加選項(主要是 symfony 相關(guān)的)。還有一些屬于『貢獻級別』的選項,你可以通過 --fixers
選擇性的添加,--fixers
的多個條件要用逗號分開:
php-cs-fixer fix /path/to/dir --fixers=linefeed,short_tag,indentation
如果有需要的話也可以使用 -name_of_fixer
采取黑名單的方式設(shè)定禁用哪些選項。如果同時設(shè)定了 --fixers
和 -name_of_fixer
,前者的優(yōu)先級更高。
同時使用 --dry-run
和 --diff
命令可以顯示出需要修改的匯總,但是并不實際修改。
通過以下方式也可以查看有哪些內(nèi)容是會修改的,但是并不實際改動文件:
cat foo.php | php-cs-fixer fix --diff -
自定義配置
--config
選項可以用來設(shè)置選取目錄以及文件進行分析并格式化,但是這個選項只能設(shè)置一些常見的已知的項目,比如 symfony:
# For the Symfony 2.3+ branch php-cs-fixer fix /path/to/sf23 --config=sf23
已有選項:
-
default 默認配置
-
magento magento 項目
-
sf23 symfony 的項目