VScodeでPHPのフォーマッター(PHP CS Fixer)導入時の解決策

htmlやjavascriptを書いていたときはPrettierでフォーマットを整えていましたがphpは対応しておらず、php用のフォーマッター探しの際にはまった箇所とその解決方法についてまとめました。

PHP CS Fixerインストールしたけど動かないじゃん!とか、.pharファイルダウンロードしたのに動かねー!って人は仲間です。


1, php-cs-fixer.pharをインストール

拡張機能PHP CS Fixerを使用するためにはphp-cs-fixer.pharが必要になります。

このファイルはあらかじめPHP CS Fixerに備わっているのですが、拡張機能の説明書にパフォーマンスが低いかもしれないとの記載があったため、今回は自分でインストールしたphp-cs-fixer.pharを使用していきます。

インストールの方法はこのサイトにまとめられています。自分はファイルをダウンロードし、PHPファイルが入っているディレクリ内に配置しました。


2, VScodeでPHP CS Fixerをインストール

VScode内でインストールするだけ!

画像1


3, VScodeのsettings.jsonにてPHP用のフォーマッターを指定

ここからが詰まりやすいところだと思います。私もここでだいぶ詰まりました。

拡張機能をインストールするとsettings.jsonに"php-cs-fixer.~~~"というような記述が増えていると思います。

しかし、その中にPHP用のフォーマッターを指定する記述がないため、以下の設定を追加します。

"[php]": { "editor.defaultFormatter": "junstyle.php-cs-fixer" }

このコードによってPHPを使用する際のフォーマッターはPHP CS Fixerに設定されます。

また、Prettierをインストールしている方は、同じくsettings.jsonに以下のようなコードがあると思います。

"[html]": {
   "editor.defaultFormatter": "esbenp.prettier-vscode"
 }

Prettierはインストール時に自動的にフォーマッターを指定するよう設定されますが、今回使用した拡張機能PHP CS Fixerにはその機能がないため、自分で記述する必要があったのだと考えられます。

*junstyleやesbenpはフォーマッターの識別子であるとの説明がVScode内で確認できました。


4, php-cs-fixer.pharのパスを指定

次はsettings.jsonファイル内の"php-cs-fixer.executablePath"というプロパティに、1でインストールしたphp-cs-fixer.pharのパスを指定します。

 "php-cs-fixer.executablePath": "php-cs-fixer.pharまでのパスを記述"

これでPHPでもフォーマッターが使えるようになりました。

5, セーブ時にもフォーマット機能が動くようにする

先ほどのsettings.jsonに以下の記述を加えることでファイルをセーブ(command + S)した際にもコードを整えてくれるようになります。

 "php-cs-fixer.onsave": true


まとめ

①php-cs-fixer.pharのインストール→②拡張機能のインストール→③PHPのフォーマッターの指定→④php-cs-fixer.pharのパスを指定(→⑤セーブ時のフォーマット機能の有効化)

以上の手順を踏むことでPHPでもコードを整えられるようになります。

⑤まで行った後のsettings.jsonは以下のようになっていると思います。

 "php-cs-fixer.executablePath": "php-cs-fixer.pharまでのパス",
 "php-cs-fixer.onsave": true,
 "[php]": { "editor.defaultFormatter": "junstyle.php-cs-fixer" }


ただ、Prettierと比べて物足りなさを感じると思います。

我慢できない人はフォーマットのルールを自分で作成することでより強力なフォーマッターに進化させてみてください。(ここでは割愛させていただきます)


いいなと思ったら応援しよう!