PHP_CodeSniffer のインストール(composerで編)

PHP_CodeSniffer のインストール(composerで編)

2006年からのAppleファン、tanakaです。iPad Pro買いましたか? 発売日の翌日くらいまでに注文して、本体は3日で届きましたが、Apple Pencilとキーボードは3週間ほど待ちました。いまは10万円のメモ帳として活躍しています。(あと大画面を生かしたゲーム機として。ほかの用途はこれから探します)

さて、PHPCodeSnifferについては3年前にPhpStorm で CakePHP のコーディングスタイルを自動チェックするで紹介しました。PhpStorm9からは、リモート開発環境(Vagrantで構築した仮想マシンとか)にインストールされたPHPCodeSnifferを使ってチェックできる、ということで、設定してみたのですが、ホストOSにインストールした場合に比べて1秒くらい遅延したので、設定を戻しました。

今回は、MacとWindowsにPHP_CodeSnifferをインストールし、PhpStormに設定する手順を紹介します。

Mac編

PHP 7.0をインストールする

MacPortsを使っているので、そちらからインストールします。

sudo port install php70 php70-mbstring php_select
sudo port select php php70
sudo cp /opt/local/etc/php70/php.ini-development /opt/local/etc/php70/php.ini

Composer をインストールする

~/local/bin にインストールします。

mkdir -p ~/local/bin
curl -sS https://getcomposer.org/installer | php -- --install-dir=/Users/`whoami`/local/bin  --filename=composer

.zshenv (使っているシェルの設定ファイル)

.zshenv にPATH設定を書きます。(.bash_profileなどお使いのシェルの設定に記述ください)

PATH=$PATH:~/local/bin:~/.composer/vendor/bin

ターミナルを開き直すとcomposerコマンドが使えます。(前もってphpcsがインストールされるディレクトリも追記しました)

PHP_CodeSniffer, CakePHP Code Sniffer をインストール

composer global require "squizlabs/php_codesniffer=*"
composer global require "cakephp/cakephp-codesniffer=2.*"
phpcs --config-set installed_paths ~/.composer/vendor/cakephp/cakephp-codesniffer

CakePHP のコーディング規約チェックができるようになりました。

phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and CakePHP

PhpStorm でチェックできるようにする

Inspection で PHP CodeSnifferを使うだけならLanguages & Frameworks > PHP > Interpreterの設定は不要でした。

Code Sniffer設定

  • 設定画面(Preferences...)を開いて、Languages & Frameworks > PHP > Code Sniffer を選択。 右側ペインの Configuration の右側にある"..."をクリックしてください。

phpcs-cakephp02.png

  • Code Snifferというダイアログが開いたら、"PHP Code Sniffer (phpcs) path:" に /Users/<yourname>/.composer/vendor/bin/phpcs と入力して "OK" をクリックします。 (<yourname>はあなたのログイン名に置き換えてください)

phpcs-cakephp01.png

  • 次に設定画面の Editor > Inspections を選択し、右側ペインのPHP Code Sniffer validationを選択します。(設定項目の検索を使うと探すのが楽です)

phpcs-cakephp03.png

  • 右下の "Coding standard:" のリストを再読み込み(赤囲みのボタン)してから"CakePHP" を選択しましょう。

以上で設定完了です。

Windows編

PHP 7.0 をインストールする

Windows版PHP 7.0 の実行にDownload Visual Studio 2015 の Visual C++ 再頒布可能パッケージ from Official Microsoft Download Centerが必要になるのでインストールします。x64もしくはx86を選択する場面ではx64を選択します。(Widndows が32bit版なら、x86を選択してください)

PHP For Windows: Binaries and sources Releases から VC14 x64 Thread Safe のZipをダウンロードします。(こちらもWidndows が32bit版なら、x86を選択してください)

Zipを解凍してできたフォルダ名(php-7.0.0-Win32-VC14-x64)をphpに変更して、C:\ に移動します。

環境変数Path に C:\php, C:\php\ext を追加します。

C:\php\php.iniの設定を3つ変更します。

extension_dir, exteinsion=php_openssl.dll はこのあとComposer-Setup.exeを実行するときに必要です。

date.timezone = Asia/Tokyo
extension_dir = "ext"
extension=php_openssl.dll

Composer をインストールする

Composer DownloadからComposer-Setup.exe をダウンロードし実行します。

MacやLinuxと違い、Windowsはインストーラを使ってComposerをインストールします。PHPバイナリのパスを指定する場面では C:\php\php.exe (先ほどPHPをインストールしたパス)と入力してインストールします。 Composer-Setup.exe (最新版)は自動的に環境変数PATHを設定してくれるので、手動設定は不要です。

PHP_CodeSniffer のインストール

CakePHP Code Snifferもあわせてインストールする方法をまとめておきます。

composer global require "squizlabs/php_codesniffer=*"
composer global require "cakephp/cakephp-codesniffer=2.*"
phpcs --config-set installed_paths %USERPROFILE%\AppData\Roaming\Composer\vendor\cakephp\cakephp-codesniffer

PhpStorm で常時チェックできるように設定する

Macの場合と同じなので省略します。

ただし、PHP Code Sniffer (phpcs) path: は、以下のようなバッチファイルのパスを指定します。 <username> をログインしているユーザ名にしてください

C:\Users\<username>\AppData\Roaming\Composer\vendor\bin\phpcs.bat

phpcs-windows01.png

参考文献

WindowsでPHPMDやPHPCSを入れてSublimeLinterでLintする - MANA-DOT

まとめ

PHP_CodeSniffer をMac/Windowsに composerを使ってインストールする方法、PhpStormに設定する方法を説明しました。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ