4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

荒廃したWordPressのPHPコードをPHP_CodeSnifferでキレイにしたい

Last updated at Posted at 2022-11-07

更新履歴

  • 2024-09-25

きったねぇWordPressのコード:worried:

きったねぇコードは解読するのが難しく、バグの原因になりやすいです。
以前までは、prettierを使用してPHPの整形をしていました。

しかし、こちらはHTMLとPHPが混在したコードの場合、動作が不安定になることが報告されています。

このプラグインは、純粋な PHP ファイルをフォーマットした場合に安定すると考えています。PHP と HTML が混在したファイルのフォーマットは、まだ不安定だと考えています。詳細は "inline" タグの open issues をご覧ください。(DeepLによる日本語訳)

きったねぇコードのままはイヤだ:sob:

WordPress公式のコーディング規約を発見!:laughing:

公式が提供しているコーディング規約がやはりありました!
コーディング規約に則って自動整形するツールも紹介されていました。

グローバル環境にPHP_CodeSniffer(以下、phpcs)の設定を行う

phpcsをインストールするためにcomposerをインストールする

composerは、PHPのパッケージ管理システムとのことです。
必ずしも必要なわけではないと思いますが、公式が勧めているのでそのやり方でやってみます。

composerをchocolateyを使用してインストールします。

composerでphpcsをインストール

powershell
composer global require squizlabs/php_codesniffer

以下のコマンドで、phpcsのバージョンが確認出来たらOKです。

powershell
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にセッティングします。

powershell
phpcs --config-set installed_paths C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\wp-coding-standards\wpcs

phpはWordPress関連しか使用しないよ!って人は、デフォルトのコーディング規約をWordPressに設定してしまった方が良いです。

powershell
phpcs --config-set default_standard WordPress

これで、phpcsを使用したphpの整形をできるようになりました!

ちなみに、現在のコーディング規約はどのファイルを参照しているかは、次のファイルに記載されています。
C:\Users\[ユーザー名]\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\CodeSniffer.conf

CodeSniffer.conf
<?php
  $phpCodeSnifferConfig = array (
    'installed_paths' => 'C:\\Users\\[ユーザー名]\\AppData\\Roaming\\Composer\\vendor\\wp-coding-standards\\wpcs',
    'default_standard' => 'WordPress',
  );
?>

WordPressのコード規約が追加されたかは、-i オプションで確認できます。

powershell
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に色々と記載できます。

こちらにわかりやすい設定方法が記載されていました。

参考資料

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?