PHP_CodeSniffer を使ってWordPress のコーディングルールに準拠しているかをチェックしてくれる WordPress-Coding-Standards というツールを Windows 環境(XAMPP)にインストールする方法のメモ。
インストールした環境(前提条件)
関連記事:「 XAMPP (Windows) のダウンロードとインストール」
目次
XAMPP には PHP_CodeSniffer がすでに入っているので、バージョンを確認すると「version 1.3.3 」
コマンドプロンプトで「phpcs –version」で確認できる。(ハイフン2個)
C:\Users\user_name>phpcs --version PHP_CodeSniffer version 1.3.3 (stable) by Squiz Pty Ltd. (http://www.squiz.net)
c:\xampp\php\pear\PHP\CodeSniffer にある。
PHP_CodeSniffer のインストールやアンインストールは PEAR インストーラを使用(これも XAMPP にはインストールされている)。
PHP_CodeSniffer の最新のバージョンをインストールするため、現在のバージョンをアンインストールしようとするが、「PHP_CodeSniffer not installed(PHP_CodeSniffer はインストールされていない)」と表示される。
C:\Users\user_name>pear uninstall PHP_CodeSniffer pear/PHP_CodeSniffer not installed
それならば、最新バージョンをインストールしようとすると、通常のコマンドプロンプトではダウンロードまでは行くが、その後エラーでインストールされない。
試しに XAMPP のコマンドライン(シェル)で試すとインストールできた。
XAMPP のコントロールパネルの「Shell」をクリックしてコマンドラインツールを起動。
「pear install –alldeps PHP_CodeSniffer」と入力して実行。(ハイフン2個)
c:\xampp # pear install --alldeps PHP_CodeSniffer WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd ate pear.php.net" to update downloading PHP_CodeSniffer-2.2.0.tgz ... Starting to download PHP_CodeSniffer-2.2.0.tgz (460,611 bytes) ................................................................................ .............done: 460,611 bytes install ok: channel://pear.php.net/PHP_CodeSniffer-2.2.0
「phpcs -i」でインストールされているコーディングルールを確認。
MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend がインストールされている。
c:\xampp # phpcs -i The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend
「pear upgrade-all」で PEAR をアップデート。
全てをアップデートするので、少し時間がかかる。
c:\xampp # pear upgrade-all Will upgrade channel://pear.php.net/archive_tar Will upgrade channel://pear.php.net/cache_lite ・・・ WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-upd ate pear.php.net" to update ・・・ downloading Archive_Tar-1.3.13.tgz ... Starting to download Archive_Tar-1.3.13.tgz (19,891 bytes) .......done: 19,891 bytes ・・・ PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer) PEAR: To install optional features use "pear install pear/PEAR#featurename" 'ND' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
「pear list」でインストールされているパッケージを確認。
PHP_CodeSniffer の新しいバージョン(2.2.0)がインストールされている。
# pear list INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE Archive_Tar 1.3.13 stable Auth 1.6.4 stable ・・・中略・・・ PEAR 1.9.5 stable PHPUnit 1.3.2 stable PHPUnit2 2.3.6 stable PHP_CodeSniffer 2.2.0 stable PHP_Compat 1.5.0 stable ・・・中略・・・
「pear clear-cache」でキャッシュをクリア。
c:\xampp # pear clear-cache reading directory C:\xampp\tmp\pear\cache 362 cache entries cleared
WordPress-Coding-Standards をインストールするため、PHP_CodeSniffer の「Standards」ディレクトリに移動。
cd コマンドで以下のディレクトリに移動。
c:\xampp\php\pear\PHP\CodeSniffer\Standards
「git clone https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards」で WordPress-Coding-Standards をダウンロード(コピー)
c:\xampp\php\pear\PHP\CodeSniffer\Standards # git clone https://github.com/WordPress-Coding-Standards/WordPress-Coding-Stand ards Cloning into 'WordPress-Coding-Standards'... remote: Counting objects: 2691, done. remote: Compressing objects: 100% (74/74), done. remote: Total 2691 (delta 38), reused 0 (delta 0), pack-reused 2612 Receiving objects: 100% (2691/2691), 475.26 KiB | 566.00 KiB/s, done. Resolving deltas: 100% (1524/1524), done. Checking connectivity... done.
c:\xampp\php\pear\PHP\CodeSniffer\Standards を確認すると「WordPress-Coding-Standards」のフォルダが作成されている。
「WordPress-Coding-Standards」のコーディングルールには WordPress, WordPress-Core, WordPress-Extra, WordPress-VIP が含まれていて、それらは1つのフォルダに入っているので、PHP_CodeSniffer(phpcs)に「installed_paths」というオプションでそのパス(位置)を教える(登録する)必要がある。(最後に s がついている)
cd コマンドで「c:\xampp\php」に移動。
「phpcs –config-set installed_paths c:\xampp\php\pear\PHP\CodeSniffer\Standards\WordPress-Coding-Standards」と入力して実行。(ハイフン2個)
うまくいけば「Config value “installed_paths” added successfully」と表示される。
c:\xampp\php # phpcs --config-set installed_paths c:\xampp\php\pear\PHP\CodeSniffer\Standards\WordPress-Coding-Standards Config value "installed_paths" added successfully
「phpcs -i」で「WordPress-Coding-Standards」のコーディングルールが表示されるかを確認。
c:\xampp\php # phpcs -i The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend, WordPress, WordPress-Core, WordPress-Extra and WordPress-VIP
チェックしたいファイルを以下のように指定して実行(ハイフン2個)
phpcs –standard=使用したいルール ファイル名
C:\xampp\htdocs\wptemplate>phpcs --standard=WordPress wp-config.php FILE: C:\xampp\htdocs\wptemplate\wp-config.php ---------------------------------------------------------------------- FOUND 41 ERRORS AFFECTING 19 LINES ---------------------------------------------------------------------- 1 | ERROR | [x] End of line character is invalid; expected "\n" but | | found "\r\n" 24 | ERROR | [x] Expected 1 spaces after opening bracket; 0 found 24 | ERROR | [x] Expected 1 spaces before closing bracket; 0 found 27 | ERROR | [x] Expected 1 spaces after opening bracket; 0 found
以下のように結果をテキストファイルに出力することも可能。
C:\xampp\htdocs\wptemplate>phpcs --standard=WordPress wp-config.php > wpcs_error.txt
PHP_CodeSniffer(phpcs)の設定(Config)オプション
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Configuration-Options
PHP_CodeSniffer(phpcs)のコマンド(Usage)オプション
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage
<参考にしたサイト>
Setup PHP CodeSniffer along with WordPress Coding Standards [ Windows, XAMPP ]
How to setup PHP CodeSniffer on Windows machine ?