wordpress WordPress-Coding-Standards の Windows 環境でのインストール

2015年2月19日

PHP_CodeSniffer を使ってWordPress のコーディングルールに準拠しているかをチェックしてくれる WordPress-Coding-Standards というツールを Windows 環境(XAMPP)にインストールする方法のメモ。

PHP_CodeSniffer
PHP のコーディングルールに準拠しているかどうかをチェックしてくれるツール
https://github.com/squizlabs/PHP_CodeSniffer
http://pear.php.net/package/PHP_CodeSniffer/
WordPress-Coding-Standards
PHP_CodeSniffer を元に WordPress 用に開発されたツール
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards

インストールした環境(前提条件)

  • Windows7
  • XAMPP(ApacheFriends XAMPP Version 1.8.3 with PHP 5.5)インストール済み
  • XAMPP は C ドライブ直下にインストール
  • 環境変数 Path には「C:\xampp\php」を登録済み
  • Windows 用の Git(Git for Windows)インストール済み

関連記事:「 XAMPP (Windows) のダウンロードとインストール

目次

PHP_CodeSniffer のインストール

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 にある。

wpcs_01

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」をクリックしてコマンドラインツールを起動。

wpcs_02

wpcs_03

「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 のインストール

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」のフォルダが作成されている。

wpcs_04

「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

WordPress-Coding-Standards の使い方

チェックしたいファイルを以下のように指定して実行(ハイフン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 ?