更新履歴
- 2024-09-25
- VS Codeの拡張機能が自分の環境では動かなくなってしまったため、「PHP Sniffer & Beautifier」に変更(phpcs、phpcbfの記述を削除)
きったねぇWordPressのコード
きったねぇコードは解読するのが難しく、バグの原因になりやすいです。
以前までは、prettierを使用してPHPの整形をしていました。
しかし、こちらはHTMLとPHPが混在したコードの場合、動作が不安定になることが報告されています。
このプラグインは、純粋な PHP ファイルをフォーマットした場合に安定すると考えています。PHP と HTML が混在したファイルのフォーマットは、まだ不安定だと考えています。詳細は "inline" タグの open issues をご覧ください。(DeepLによる日本語訳)
きったねぇコードのままはイヤだ
WordPress公式のコーディング規約を発見!
公式が提供しているコーディング規約がやはりありました!
コーディング規約に則って自動整形するツールも紹介されていました。
グローバル環境にPHP_CodeSniffer(以下、phpcs)の設定を行う
phpcsをインストールするためにcomposerをインストールする
composerは、PHPのパッケージ管理システムとのことです。
必ずしも必要なわけではないと思いますが、公式が勧めているのでそのやり方でやってみます。
composerをchocolateyを使用してインストールします。
composerでphpcsをインストール
composer global require squizlabs/php_codesniffer
以下のコマンドで、phpcsのバージョンが確認出来たらOKです。
phpcs --version
PHP_CodeSniffer version 3.7.1 (stable) by Squiz (http://www.squiz.net)
WordPressのPHPコード規約をphpcsに登録する
WordPressのコーディング規約がgitに管理してあるので、gitからクローンします。
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\wp-coding-standards\wpcs
phpcsで使用するので、C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\
以下に入れておいた方がよいです。
phpcsにコーディング規約を設定します
先ほどGitから落としたコーディング規約を、phpcsにセッティングします。
phpcs --config-set installed_paths C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\wp-coding-standards\wpcs
phpはWordPress関連しか使用しないよ!って人は、デフォルトのコーディング規約をWordPressに設定してしまった方が良いです。
phpcs --config-set default_standard WordPress
これで、phpcsを使用したphpの整形をできるようになりました!
ちなみに、現在のコーディング規約はどのファイルを参照しているかは、次のファイルに記載されています。
C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\CodeSniffer.conf
<?php
$phpCodeSnifferConfig = array (
'installed_paths' => 'C:\\Users\\[ユーザー名]\\AppData\\Roaming\\Composer\\vendor\\wp-coding-standards\\wpcs',
'default_standard' => 'WordPress',
);
?>
WordPressのコード規約が追加されたかは、-i オプションで確認できます。
phpcs -i
The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs and WordPress-Extra
VS Codeの拡張機能設定
自動整形をするためには、VS Codeの拡張機能をインストールします。
VS Codeのsetting.jsonに以下の記述をします。
{
"[php]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "valeryanm.vscode-phpsab",
},
}
これにより、保存時にPHPのコードが自動整形されます。
phpcsのルールを変更したい場合
C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\wp-coding-standards\wpcs\WordPress\ruleset.xml
に色々と記載できます。
こちらにわかりやすい設定方法が記載されていました。
参考資料