どうも、シローです。

以前、Vim + ALEでJavaScriptの自動整形(https://shiro-secret-base.com/?p=178)についての記事を書きました。

今回はそれのPHP版です。

ALEについて

Vimのプラグインで、コードのシンタックスチェックをやってくれます。

https://github.com/dense-analysis/ale

インストール

~/.vimrcにて「Plugin」でインストールします。

~/.vimrc

・・・  Plugin 'w0rp/ale'  ・・・

記述したら、vim上で「:PlugInInstall」を実行してインストール。

詳しくは https://github.com/dense-analysis/ale#installation を参照。

 

 

ただ、コードの自動整形はデフォルトではやってくれません。

そのため、「php-cs-fixer」コマンドをインストールする必要があります。

php-cs-fixerとは

php-cs-fixerはphpのコードをチェックして余分なスペースや改行などがあれば整形してくれるコマンドです。

インストール

curlでインストール

$ curl -L https://cs.symfony.com/download/php-cs-fixer-v3.phar -o php-cs-fixer  $ sudo chmod a+x php-cs-fixer  $ sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

composerでインストール

$ composer global require friendsofphp/php-cs-fixer  $ export PATH="$PATH:$HOME/.composer/vendor/bin"  

homebrewでインストール

$ brew install php-cs-fixer  

 

ターミナルで、「php-cs-fixer」というコマンドが使えていればOKです。もし実行できていない場合は、パスが通っていないかをチェックしてみたらいいかもです。

また、「php-cs-fixer」のコマンドがある場所もALEから実行するために必要なので、「which」コマンドで確認します。

$ php-cs-fixer  PHP CS Fixer 3.1.0 River by Fabien Potencier and Dariusz Ruminski (cf4cedb)    Usage:    command [options] [arguments]    Options:    -h, --help            Display this help message    -q, --quiet           Do not output any message    -V, --version         Display this application version        --ansi            Force ANSI output        --no-ansi         Disable ANSI output    -n, --no-interaction  Do not ask any interactive question    -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug    Available commands:    describe     Describe rule / ruleset.    fix          Fixes a directory or a file.    help         Display help for a command    list         List commands    list-files   List all files being fixed by the given config.    list-sets    List all available RuleSets.    self-update  [selfupdate] Update php-cs-fixer.phar to the latest stable version.    # php-cs-fixerの場所  $ which php-cs-fixer  /usr/local/bin/php-cs-fixer  

詳しくは、https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/doc/installation.rst を参照。

~/.vimrcにALEでphp-cs-fixerを使う記述を追加

~/.vimrcにてphp-cs-fixerをALEから利用するための記述はこちらです。

~/.vimrc

" ale  " php-cs-fixerへのパス  let g:ale_php_php_cs_fixer_executable='/usr/local/bin/php-cs-fixer'  " phpのコード整形はphp_cs_fixerを利用するように指定(「-」ではなく「_」であるのに注意)  let g:ale_fixers = {'php': ['php_cs_fixer']}  " 保存時にコード整形を実行  let g:ale_fix_on_save = 1

ここまでできれば、あとはPHPのファイルを編集して効果を実感できると思います。

一応、こんな感じで整形してくれます

僕のローカル環境ではこのようにスペースを開けたり、適宜改行もやってくれてます。

参考になればと思います、おっしまい^^