WordPressでは、独自のコーディング規約があり、そのコーディング規約に沿っているかを自動でチェックするツールが PHP_CodeSnifferです。この記事では、PHP CodeSnifferをインストールしてphpcsコマンドで実行できるようにします。
PHP CodeSnifferをインストールする方法は、PHP_CodeSnifferの公式サイトでPEAR、Phive、Comporserを利用したインストール方法が紹介されていますが、今回はComposerを使用します。
Composerをインストールする
Composerがない場合は、まずComposerをインストールします。MacOS Xではbrewを使用します。
brewコマンドが登録されていない場合は、はじめにHomebrew公式サイトからHomebrewをインストールします。
$ brew install composer
インストールされたことを確認します。
$ composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.9.0
環境変数PATHを通す
環境変数PATHを通すために、ユーザーのホームにある.bash_profileファイルにパスを記述します。
echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> ~/.bash_profile
ファインダーから直接.bash_profileを編集してパスを追記することも可能です。
export PATH=$HOME/.composer/vendor/bin:$PATH
ちなみに、.bash_profileは不可視ファイルなのでファインダーからデフォルトでは見えません。ファインダーを開いた状態で、「command + shift + .」のショートカットキーを押して、非表示にしておきます。
PHP_CodeSnifferをインストールする
Comporserのコマンドが利用できるようになったら、ComposerコマンドでPHP_CodeSnifferをインストールします。
$ composer global require "squizlabs/php_codesniffer=*"
完了したらphpcsコマンドでインストールされているコーディング規約をみることができます。
$ phpcs -i
The installed coding standards are PEAR, Zend, PSR2, MySource, Squiz, PSR1 and PSR12
WordPressコーディング規約版をGitHubからインストールする
デフォルトにはWordPressのコーディング規約が入っていないので、GitHubからクローンして追加します。
$ git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git ~/.composer/vendor/squizlabs/php_codesniffer/Standards/WordPress
ここで、パスフレーズを聞かれてしまう場合は、GitHubにSSH接続できていないのが原因です。その場合は、まずはSSH接続の設定をする必要があります。
設定方法は「GitHubにSSH接続する方法」で紹介しています。
phpcsへ登録する
インストール後、phpcsへ登録します。
$ phpcs --config-set installed_paths ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/WordPress
Config value "installed_paths" added successfully
追加されたことを確認します。
$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP
phpcsを実行する
$ phpcs -p -s -v --standard=WordPress inde.php
エラーがあると以下のように表示されます。
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
12 | ERROR | [x] Inline PHP statement must end with a semicolon
| | (Squiz.PHP.EmbeddedPhp.NoSemicolon)
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------
このままでは、毎回ターミナルで実行しないといけないので面倒です。そこで、エディターからリアルタイムで実行できるようにエディター側で設定もしておくと便利です。
関連記事
VS CodeでPHP_CodeSnifferを利用してWordPressのコーディング規約をチェックする
Atomエディターで PHP_CodeSnifferを使ってエラーチェックできるようにする
GitHubにSSH接続する方法