どうも、シローです。
以前、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のファイルを編集して効果を実感できると思います。
一応、こんな感じで整形してくれます
僕のローカル環境ではこのようにスペースを開けたり、適宜改行もやってくれてます。
参考になればと思います、おっしまい^^
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.