プログラマーノート

プログラマーの学習や雑記のメモです

Windows環境でphpstormのphpcsを動かす

はじめに

こんにちは。エンジニアの仕事をしている、たかふみです。

本日は、Windows環境でCodeSnifferをインストールし、phpstormで静的解析するにはどうしたらいいのか記事にしたいと思います

CodeSnifferとは

CodeSnifferとはコードスタイルをチェックする、静的解析ツールです。

PHPのコードスタイルには、PSR-0,PSR-2,PSR-3など様々なコードスタイルがあります。

通常、サーバーサイドでComposerでグローバルインストールし、ファイルに対して実行するものです。

指定のコードスタイルに添っているかどうかチェックします。

$ vendor/bin/phpcs hoge.php

ソースを静的解析し、間違っているかどうかチェックできるのは便利なことですが、

いちいち実行するのは、面倒ですね。

そこで、PHPerの大好きなIDEである、phpstormでコード規約を実行できないか調査しました。

IDEでコード規約に添っているかどうかチェックするには、どうすればいいのでしょうかね。

試してみましょう。

PHPをWindowsにインストールする

もうインストールされていれば不要なのですが、

まずはPHPをWindowsにインストールすることが必須です。

以下、PHP公式からダウンロードしてください。

動作させたいPHPバージョンのダウンロードをクリックしてください。

f:id:takafumiat:20211009202900p:plain
windowsダウンロード

スレッドセーフ版のzipをクリック

f:id:takafumiat:20211009204004p:plain
php_download

ダウンロードしたzipを解答してどこかのディレクトリに適宜配置してください。

PHPのパスを通すことを忘れずに

phpのパスを通さないと動かないと動作しないとで気をつけてください。

パスの通し方

・windowsマークをクリック
・設定をクリック
・左袖下部にある、下部にある、詳細情報をクリック
・下の方にある、システムの詳細設定をクリック
・詳細設定をクリック
・下部の環境変数をクリック
・Pathを選択し、編集をクリック
・新規を押下し、PHPのzipを解凍先を指定する。

phpがインストールされたか確認する

PowerShellを開いて、phpが動作できることを確認してください。

PS C:\Users\strat> php -v
PHP 7.4.24 (cli) (built: Sep 21 2021 13:38:25) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

ComposerをWindowsにインストール

下記サイトから、Composer-setup.exeをクリックしてダウンロードしてください。

f:id:takafumiat:20211009205715p:plain
composer-install

たぶんポチポチボタンを押していけばインストールされます。

最後に、PowerShellを開いて、composerがインストールされたことを確認してください。

PS C:\Users\strat> composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.1.9 2021-10-05 09:47:38

php_codesnifferをcomposerからグローバルインストールします

下記コマンドでグローバルインストールしてください。

composer global require "squizlabs/php_codesniffer"

このようにインストールされます。

PS C:\Users\strat> composer global require "squizlabs/php_codesniffer"
Changed current directory to C:/Users/strat/AppData/Roaming/Composer
Using version ^3.6 for squizlabs/php_codesniffer
./composer.json has been created
Running composer update squizlabs/php_codesniffer
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking squizlabs/php_codesniffer (3.6.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading squizlabs/php_codesniffer (3.6.0)
  - Installing squizlabs/php_codesniffer (3.6.0): Extracting archive
Generating autoload files

以下ディレクトリにインストールされました。

C:\Users\strat\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer

phpstormの設定

phpstormを開き、FilesettingsPHPQuality toolPHP_Codesnifferから、composerからインストールしたphp_codesnifferの実行パス(phpcs.bat)を指定してください。

f:id:takafumiat:20211009211305p:plain
codesniffer_setting

実行パスを指定した後、validationを押して異常なければ設定に問題はありません。

もし仮に、実行ファイルでないファイルを指定した場合は、エラーとなります。

次に、PHP_CodeSniffer Inspectionsを開き、

PHP_CodeSniffer validation にチェックを入れ、Coding standardにお好みのコーディングスタイルを指定してください。

f:id:takafumiat:20211009211742p:plain
php_codesnifffer_inspections

phpstormがPHP_CodeSnifferのエラーを出すことに成功

これで、phpstormphpcsのエラーを出すことに成功したはずです。

非推奨のコードを記述したところ、無事にphpcsのエラーが出るようになりました。

f:id:takafumiat:20211009213111p:plain
phpcs_error

まとめ

いかがでしたでしょうか

phpstormのお供に、静的コード解析を導入することで品質担保できたら良いですね!

皆様の開発のお役に立てたら光栄です。読んで頂いてありがとうございました。