WordPressでテーマやプラグインを開発している人なら必須な「WordPress-Coding-Standards」をWindowsに導入する方法について紹介していきます。
いざ実行するとエラー出まくりで、めちゃくちゃ凹みますが、それぞれのエラーの意味を噛みしめながら修正していってください笑
手順が多いですが、、、順番に導入していってください
「WordPress-Coding-Standards」を導入までの流れ
前提で導入していかないといけないものがたくさんあるので、順番に行っていきましょう。
導入の流れとしては以下のとおりです。(たぶんMacとかならめちゃくちゃ簡単なんだろうなぁと思いつつ。。)
- XAMPP
- Composer
- PHP_CodeShiffer
- Git
- WordPress-Coding-Standards
それでは順番に入れていきましょう!何も導入していない人にとっては道のりが長いですが、頑張ってついてきてください。。
Composerのインストール
「PHP_CodeShiffer」を導入するためには、Composerが必要になります。ComposerをWindowsに導入する方法は下記にまとめていますので、参考にして導入してみてください。
コマンドプロンプトで下記が動作するところまで動けば、こちらに戻ってきだてください。
composer --version
Composer version 1.6.3 2018-01-31 16:28:17
PHP_CodeShifferのインストール
Composerが導入できていれば、下記のコマンドで「PHP_CodeShiffer」が導入できます。
composer global require "squizlabs/php_codesniffer=*"
少し時間がかかります。
コマンドプロンプトで以下のコマンドが反応すればOKです。
phpcs -i
The installed coding standards are PEAR, Squiz, PSR2, PHPCS, PSR1, Zend and MySource
Gitのインストール
手順については、以下でまとめています。
コマンドプロンプトで下記のコマンドが使えるようになればOKです。
git --version
git version 2.16.2.windows.1
WordPress-Coding-Standardsのインストール
WordPress-Coding-Standardsのファイル一式をダウンロードしていきます。
ダウンロード先は、XAMPPのC:\xampp\php\pear\PHP\CodeSniffer\Standardsフォルダです。
公式のソースはこちらです → https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
gitコマンドを使って、ダウンロードしていきましょう。
ダウンロード先のフォルダに移動します。
cd C:\xampp\php\pear\PHP\CodeSniffer\Standards
クローン(ダウンロード)します。標準のブランチが「develop」となっているっぽいので、「master」を指定してあげる必要があります。(参考:https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1283)
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git
フォルダはコピーされましたが、まだ「WordPress-Coding-Standards」を使うことはできません。PHP_CodeShifferに存在を教えてあげる必要があります。
XAMPPのPHPフォルダに移動
cd c:\xampp\php
パスの設定
phpcs --config-set installed_paths c:\xampp\php\pear\PHP\CodeSniffer\Standards\WordPress-Coding-Standards
インストールされたコーディングスタンダードの確認
phpcs -i
The installed coding standards are MySource, PEAR, PSR1, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WordPress-VIP
- WordPress
- WordPress-Core
- WordPress-Docs
- WordPress-Extra
- WordPress-VIP
が追加されているのが分かります。
WordPress-Coding-Standardsの使い方
簡単にですが使い方についても紹介します。
調査したいphpファイルのあるフォルダに移動してください。
cd wp-content
--standard=WordPress
でWordPressを選択して、対象のファイルを指定します。
phpcs --standard=WordPress index.php
すると、、、
エラーがこんなにも!
(行数にして10行くらいしか書いてないのに。。)
----------------------------------------------------------------------
FOUND 6 ERRORS AND 6 WARNINGS AFFECTING 8 LINES
----------------------------------------------------------------------
1 | WARNING | [ ] The "WordPress.XSS.EscapeOutput" sniff has been
| | renamed to "WordPress.Security.EscapeOutput".
| | Please update your custom ruleset.
1 | ERROR | [x] End of line character is invalid; expected "\n"
| | but found "\r\n"
4 | WARNING | [ ] Found precision alignment of 2 spaces.
5 | WARNING | [ ] Found precision alignment of 2 spaces.
6 | WARNING | [ ] Found precision alignment of 2 spaces.
7 | WARNING | [ ] Found precision alignment of 2 spaces.
7 | ERROR | [ ] Stylesheets must be registered/enqueued via
| | wp_enqueue_style
7 | ERROR | [ ] Missing file doc comment
7 | ERROR | [ ] All output should be run through an escaping
| | function (see the Security sections in the
| | WordPress Developer Handbooks), found
| | 'get_template_directory_uri'.
8 | WARNING | [ ] Found precision alignment of 2 spaces.
18 | ERROR | [x] Newline required after opening brace
34 | ERROR | [x] File must end with a newline character
----------------------------------------------------------------------
PHPCBF CAN FIX THE 3 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------
これがまだ1ファイル目って考えるとゾッとしますね。
ただ、ここで吐き出されたエラーの意味を理解してWordPressのコーディング規則に沿ったコーディングをしていきましょう。
おわり
Windowsに「WordPress-Coding-Standards」を導入する方法でした。
Windowsだと、環境整備が結構たいへんだったりしますね。たぶんMacだったらコマンドをターンッってしていけばカッコよく導入していけるんだと思います。