VS CodeでPHPのコードフォーマットを自動的に行うには、「PHP-CS-Fixer」というエクステンションを使います。
SPR-2に準拠したコードフォーマットが可能になります。
Windows10で使えるようにする方法について書きますが、基本的な流れはどのOSでも同じかと思います。
この記事の内容
VS CodeでPHP-CS-Fixerを使えるようにするまでの流れ
PHP-CS-FixerはVS Codeのエクステンションをインストールしただけでは動かないので注意が必要です。
以下の手順でインストールと設定が必要です。
- PHP-CS-FixerのVS Codeエクステンションをインストールする
- VS Codeを動かしているOS上(今回はWindows)にPHPをインストールする
- PHP-CS-Fixer本体をインストールする
- PHP-CS-Fixerエクステンションの設定をしてVS Codeで動くようにする
それでは手順を説明します。
VS CodeでPHP-CS-Fixerを使えるようにする
PHP-CS-FixerのVS Codeエクステンションをインストールする
左側メニューのエクステンションのアイコンを選び、「PHP-CS-Fixer」を検索してインストールボタンを押します。
「php cs fixer」とか「PHP CS Fixer」とか似たものがありますが、ここでは「PHP-CS-Fixer」を選んでいるのでご注意ください。

インストール後、VS Codeを再起動するとエクステンションが有効になります。
エクステンションの説明ページには以下のように「ファイルを保存するだけでフォーマットされる」と書かれています。
Just by saving your file PHP-CS-Fixer takes care of the code formatting for you.
ファイルを保存するだけで、PHP-CS-Fixerがコードの書式設定を処理します。
ですがエクステンションをインストールしただけだとエラーになります。
PHP-CS-Fixer: An error occurred.

PHP-CS-Fixerを動かすにはVS Codeを使っているPCにPHPをインストールし、php-cs-fixer.pharにパスを通しておく必要があります。
VS Codeを動かしているOS上(Windows)にPHPをインストールする
php-cs-fixerを動かすためにphpが必要です。すでにインストール済の場合、以下はスキップしても大丈夫です。
Windowsの場合は以下からphpをダウンロードします。

スレッドセーフ版(VC15 x64 Thread Safe)のzipをダウンロード。

ダウンロードしたzipを解凍して、cドライブ直下に「php」というフォルダー名でコピーします。

「php.ini-production」をコピーして「php.ini」を作っておきます。
あとはC:\php
をパスに追加してphpコマンドが使えるようにしておきます。
システム環境変数の編集画面を開き…


Pathを編集します。

「新規」ボタンを押して、「C:\php」を追加しOKボタンを押して設定を完了します。

PowerShell等でphpコマンドが使える事を確認できればOKです。
> php -v
PHP 7.4.3 (cli) (built: Feb 18 2020 17:29:46) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
PHP-CS-Fixer本体をインストールする
GitHubのページから「php-cs-fixer.phar」をダウンロードし、C:\Users\ユーザー名\.vscode\php-cs-fixer.phar
など任意の場所に配置します。
FriendsOfPHP/PHP-CS-Fixer: A tool to automatically fix PHP Coding Standards issues

PHP-CS-Fixerエクステンションの設定をしてVS Codeで動くようにする
ダウンロードしたphp-cs-fixer.pharをVS Codeで実行できるようにバッチファイルを作ってC:\Users\ユーザー名\.vscode\php-cs-fixer.bat
として保存しておきます。
@echo off
php C:\Users\yuuki\.vscode\php-cs-fixer.phar %*
次にVS Codeの設定をします。
VS CodeでCtrl+,
とショートカット入力して設定を開き、「PHP-CS」で検索してPHP-CS-Fixerの設定項目を見つけます。
PHP-cs-fixer: Executableの項目を見つけたら先ほど作ったバッチファイルのパス「C:\Users\ユーザー名\.vscode\php-cs-fixer.bat」を入力します。

設定が完了したらVS Codeを再起動またらリロードします。
リロードは「Ctrl+p」→「>Reload window」で出来ます。
これでファイルを保存するとPSR-2形式でフォーマットされるようになると思います。
少し面倒ですが、がんばってください。
WindowsのVS CodeでPHPのコードフォーマットをする方法は以上です。
コメント/ピンバック